[alsa-devel] Kill snd_assert()

Takashi Iwai tiwai at suse.de
Mon Aug 11 10:58:27 CEST 2008


At Mon, 11 Aug 2008 10:41:37 +0200,
I wrote:
> 
> Hi,
> 
> as some people already mentioned, we have a pretty ugly macro, snd_assert().
> Actually, this macro is sometimes useful, but the implementation including
> the code flow in arguments is really bad.
> 
> I tried to kill this, either the following way:
> 
>  - replace
> 	snd_assert(cond, flow...);
>    with
> 	if (snd_BUG_ON(!cond))
> 		flow...;
> 
>  - use WARN_ON() if the check is needed essentially regardless of
>    CONFIG_SND_DBEBUG value
> 
>  - remove snd_assert() for obviously unneeded code-paths
> 
> The new snd_BUG_ON() macro takes the condition, and works like
> WARN_ON() if CONFIG_SND_DEBUG=y: prints the warning with stack trace, 
> and returns the evaluated value.  When CONFIG_SND_DEBUG=n, the macro
> returns always zero, so that the compiler will optimize out the
> unreached flows.
> 
> Since snd_BUG_ON() takes the condition of a bug, it's a negative
> condition against snd_assert().  It follows BUG_ON() and WARN_ON(),
> and easier to understand, IMO.
> 
> 
> The patches are found on topic/remove-assert branch of my git tree:
> 
>    git://git.kernel.org/pub/scm/linux/kernel/tiwai/sound-2.6.git

Oops, the correct URL is:
    git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6.git

Also, the corresponding alsa-driver build tree is found on
topic/remove-assert branch of alsa-driver-build.git below:
    git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/alsa-driver-build.git

    http://git.kernel.org/?p=linux/kernel/git/tiwai/alsa-driver-build.git;a=shortlog;h=topic/remove-assert


Takashi


More information about the Alsa-devel mailing list