[alsa-devel] Scope of snd_pcm_hw_params_alloca() ?
Takashi Iwai
tiwai at suse.de
Fri Mar 14 13:50:27 CET 2008
At Fri, 14 Mar 2008 12:19:57 +0000,
Alan Horstmann wrote:
>
> On Thursday 13 March 2008 16:44, you wrote:
> > At Thu, 13 Mar 2008 16:21:51 +0000,
> >
> > Alan Horstmann wrote:
> > > snd_pcm_hw_params_alloca() is part of the user API -right? But
> > > accomplished as a #define in pcm.h.
> >
> > Because alloca can be used only with a macro due to its nature.
> >
> > > However if it is called inside a function, and the pointer stored for
> > > future use, after leaving the function the allocation seems to have gone,
> > > and attempting thereafter to use the pointer to access the hwparams space
> > > in another API function results in seg-fault.
>
> So would it be better in this case to use the malloc /free functions if
> possible?
No, it depends on your purpose.
The merit of alloca is that it's really a temporary variable that
requires no explicit destructor, and is faster and lighter than
malloc/free. If you don't need to reuse it, you can safely use
alloca. But if you need to reused the allocated record later, malloc
is the only choice.
> Am I right that they are not provided in salsa, so alloca would be
> necessary to use that lib?
Hm? It's provided in SALSA, too.
Takashi
More information about the Alsa-devel
mailing list