[FFmpeg-devel] [PATCH] avutil/buffer: use appropriate atomic operations
James Almer
jamrial at gmail.com
Fri Dec 6 01:55:57 EET 2019
On 12/5/2019 6:02 AM, quinkblack at foxmail.com wrote:
> From: Zhao Zhili <zhilizhao at tencent.com>
>
> No functional changes. ref/unref vs add/sub is symmetrical.
> ---
> libavutil/buffer.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/libavutil/buffer.c b/libavutil/buffer.c
> index 8d1aa5fa84..f0034b026a 100644
> --- a/libavutil/buffer.c
> +++ b/libavutil/buffer.c
> @@ -116,7 +116,7 @@ static void buffer_replace(AVBufferRef **dst, AVBufferRef **src)
> } else
> av_freep(dst);
>
> - if (atomic_fetch_add_explicit(&b->refcount, -1, memory_order_acq_rel) == 1) {
> + if (atomic_fetch_sub_explicit(&b->refcount, 1, memory_order_acq_rel) == 1) {
> b->free(b->opaque, b->data);
> av_freep(&b);
> }
> @@ -281,7 +281,7 @@ void av_buffer_pool_uninit(AVBufferPool **ppool)
> pool = *ppool;
> *ppool = NULL;
>
> - if (atomic_fetch_add_explicit(&pool->refcount, -1, memory_order_acq_rel) == 1)
> + if (atomic_fetch_sub_explicit(&pool->refcount, 1, memory_order_acq_rel) == 1)
> buffer_pool_free(pool);
> }
>
> @@ -298,7 +298,7 @@ static void pool_release_buffer(void *opaque, uint8_t *data)
> pool->pool = buf;
> ff_mutex_unlock(&pool->mutex);
>
> - if (atomic_fetch_add_explicit(&pool->refcount, -1, memory_order_acq_rel) == 1)
> + if (atomic_fetch_sub_explicit(&pool->refcount, 1, memory_order_acq_rel) == 1)
> buffer_pool_free(pool);
> }
Applied, thanks.
More information about the ffmpeg-devel
mailing list