[pulseaudio-discuss] asserts active by default

Colin Guthrie gmane at colin.guthr.ie
Tue Sep 2 04:04:19 PDT 2008


rdiezmail-pulseaudio at yahoo.de wrote:
> [2nd try, the first message went apparently lost]
> 
> Hi all:
> 
> I have noticed that the assert() calls inside the libpulse client
> library are enabled by default. I would expect asserts to be disabled
> in release builds, via the NDEBUG macro or similar compile-time
> switch.
> 
> What's the common practice for asserts in the OSS world in this kind
> of libraries?
> 
> I've seen in other projects a "--disable-assert" argument to the
> ./configure script. Would that (or --enable-assert) be an option to
> consider?

The asserts indicate when an invalid use of the API is encountered (or a 
bug of course!). When an assert happens it indicates an error condition 
and in pulse, essentially protect against buffer overflows and other 
such conditions.

If the asserts were disabled, then a significant rework in terms of 
error handling would need to be performed. If a catchable error occurs 
in pulse, an assert is not used.

I'm not really sure of the value in disabling asserts. If they are being 
hit, then this just means there are bugs to be fixed!

But perhaps I don't get something here, so will wait for a more 
authoritative answer from Lennart on this :)

Col


-- 

Colin Guthrie
gmane(at)colin.guthr.ie
http://colin.guthr.ie/

Day Job:
   Tribalogic Limited [http://www.tribalogic.net/]
Open Source:
   Mandriva Linux Contributor [http://www.mandriva.com/]
   PulseAudio Hacker [http://www.pulseaudio.org/]
   Trac Hacker [http://trac.edgewall.org/]




More information about the pulseaudio-discuss mailing list