[pulseaudio-discuss] Are "_ref" and "_unref" not necessarily called in pairs?

Lin, Mengdong mengdong.lin at intel.com
Thu May 12 18:50:52 PDT 2011


Thanks for your clarification, Col!

> -----Original Message-----
> From: pulseaudio-discuss-bounces at mail.0pointer.de
> [mailto:pulseaudio-discuss-bounces at mail.0pointer.de] On Behalf Of Colin
> Guthrie
> Sent: Thursday, May 12, 2011 5:06 PM
> To: pulseaudio-discuss at mail.0pointer.de
> Subject: Re: [pulseaudio-discuss] Are "_ref" and "_unref" not necessarily
> called in pairs?
> 
> Hiya,
> 
> 
> As per the subject question... Yes, they are supposed to be called in
> pairs... BUT....
> 
> 'Twas brillig, and Lin, Mengdong at 12/05/11 09:31 did gyre and gimble:
> > For example, in file “module-suspend-on-idle.c “, why does the slot
> > function “sink_input_state_changed_hook_cb” only reference the sink
> > input but never unreference it?
> >
> > So the reference count of the sink input will only increase? Does it matter?
> >
> > Here is the code:
> >
> > static pa_hook_result_t sink_input_state_changed_hook_cb(pa_core *c,
> > pa_sink_input *s, struct userdata *u) {
> >
> >     struct device_info *d;
> >
> >     pa_sink_input_state_t state;
> >
> >
> >
> >     pa_assert(c);
> >
> >     pa_sink_input_assert_ref(s);  … the sink input is referenced here.
> > But where pa_sink_input_unref(s) is called?
> 
> 
> 
> This is not the same as pa_sink_input_ref(). Note the word "assert" in
> the "function" call in the code above (it's actually a define, not a
> function but I won't split hairs with myself :D).
> 
> Here all that is happening is ensuring that the sink_input object is
> referenced...
> 
> The code is in pulsecore/object.h
> 
> See lines 91, and 69.
> 
> The code basically means assert if the object is not referenced. This is
> a safefy thing to ensure good programming of modules etc.
> 
> Hope that clarifies things.
> 
> Col
> 
> 
> 
> --
> 
> Colin Guthrie
> gmane(at)colin.guthr.ie
> http://colin.guthr.ie/
> 
> Day Job:
>   Tribalogic Limited [http://www.tribalogic.net/]
> Open Source:
>   Mageia Contributor [http://www.mageia.org/]
>   PulseAudio Hacker [http://www.pulseaudio.org/]
>   Trac Hacker [http://trac.edgewall.org/]
> 
> _______________________________________________
> pulseaudio-discuss mailing list
> pulseaudio-discuss at mail.0pointer.de
> https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss


More information about the pulseaudio-discuss mailing list