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