Takashi Iwai wrote:
> At Mon, 06 May 2002 12:09:57 +0200,
> Peter Enderborg wrote:
> >
> > Takashi Iwai wrote:
> >
> > > Hi Peter,
> > >
> > > At Sun, 05 May 2002 19:35:04 +0200,
> > > Peter Enderborg wrote:
> > > >
> > > > I have some memory problems with my alsa programming.
> > > > And I have tryed to do a small program to see whats wrong.
> > > > And I still have the same problem with this little program...
> > > >
> > > >
> > > > #include <alsa/asoundlib.h>
> > > > int main()
> > > > {
> > > > while (1)
> > > > {
> > > > snd_seq_event_t *foo;
> > > > foo = snd_seq_create_event();
> > > > snd_seq_free_event(foo);
> > > > }
> > > > return 0;
> > > > }
> > > >
> > > > I guess that I have missed some fundamental things about the events.
> > > > This on cvs version from 20020504
> > >
> > > err.. please avoid using snd_seq_create_event(), or free the pointer
> > > by normal free() call. snd_seq_free_event() doesn't free the
> > > malloc'ed pointer on alsa 0.9.
> > >
> >
> > What is the correct way to create an event then?
>
> the event struct is explicitly defined and its size is constant unlike
> other structs in API. thus you can use any allocator as you like,
> such as malloc, etc. if the event can be temporary, use it as a
> normal type simply like this:
>
> {
> snd_seq_event_t ev;
> snd_seq_ev_clear(&ev);
> ...
> snd_seq_event_output(handle, &ev);
> }
>
> snd_seq_event_output() copies the event instance, so a temporary
> variable can be used safely in the above.
>
> Takashi
Then we should remove theh free operation as well, so we get symetric API.
--
foo!
_______________________________________________________________
Have big pipes? SourceForge.net is looking for download mirrors. We supply
the hardware. You get the recognition. Email Us: [EMAIL PROTECTED]
_______________________________________________
Alsa-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-devel