On 2018-09-07 11:35 p.m., Marek Olšák wrote:
> From: Marek Olšák <marek.ol...@amd.com>
> 
> Tested-by: Dieter Nützel <die...@nuetzel-hh.de>
> ---
>  src/gallium/auxiliary/util/u_inlines.h | 9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/src/gallium/auxiliary/util/u_inlines.h 
> b/src/gallium/auxiliary/util/u_inlines.h
> index 83013df53f1..820d3080a5c 100644
> --- a/src/gallium/auxiliary/util/u_inlines.h
> +++ b/src/gallium/auxiliary/util/u_inlines.h
> @@ -72,28 +72,29 @@ pipe_is_referenced(struct pipe_reference *src)
>  static inline boolean
>  pipe_reference_described(struct pipe_reference *dst,
>                           struct pipe_reference *src,
>                           debug_reference_descriptor get_desc)
>  {
>     boolean destroy = FALSE;
>  
>     if (dst != src) {
>        /* bump the src.count first */
>        if (src) {
> -         assert(pipe_is_referenced(src));
> -         p_atomic_inc(&src->count);
> +         MAYBE_UNUSED int count = p_atomic_inc_return(&src->count);
> +         assert(count != 1); /* src had to be referenced */
>           debug_reference(src, get_desc, 1);
>        }
>  
>        if (dst) {
> -         assert(pipe_is_referenced(dst));
> -         if (p_atomic_dec_zero(&dst->count))
> +         int count = p_atomic_dec_return(&dst->count);
> +         assert(count != -1); /* dst had to be referenced */
> +         if (!count)
>              destroy = TRUE;
>  
>           debug_reference(dst, get_desc, -1);
>        }
>     }
>  
>     return destroy;
>  }
>  
>  static inline boolean
> 

Reviewed-by: Michel Dänzer <michel.daen...@amd.com>


-- 
Earthling Michel Dänzer               |               http://www.amd.com
Libre software enthusiast             |             Mesa and X developer
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to