[Mesa-dev] [PATCH 2/2] c11/threads: correct assertion

Ian Romanick idr at freedesktop.org
Fri Aug 1 16:16:12 PDT 2014


On 08/01/2014 09:41 AM, Emil Velikov wrote:
> We should assert when either the function or the flag pointer
> is null or we'll end up with a null reference a few lines later.
> 
> Currently unused by mesa thus it has gone unnoticed.
> 
> Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
> ---
>  include/c11/threads_win32.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/include/c11/threads_win32.h b/include/c11/threads_win32.h
> index 35880ba..a95cb78 100644
> --- a/include/c11/threads_win32.h
> +++ b/include/c11/threads_win32.h
> @@ -296,7 +296,7 @@ static void impl_tss_dtor_invoke()
>  static inline void
>  call_once(once_flag *flag, void (*func)(void))
>  {
> -    assert(!flag && !func);
> +    assert(flag && func);

This is why I generally prefer to compare pointers to NULL instead of
just using them as booleans.

    assert(flag == NULL && func == NULL);

is much more obviously wrong than the current code.  Either way, this
patch is

Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

>  #ifdef EMULATED_THREADS_USE_NATIVE_CALL_ONCE
>      {
>      struct impl_call_once_param param;
> 



More information about the mesa-dev mailing list