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 _______________________________________________________________ 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