Browse Source

avutil/buffer: use appropriate atomic operations

No functional changes. ref/unref vs add/sub is symmetrical.

Signed-off-by: James Almer <jamrial@gmail.com>
tags/n4.3
Zhao Zhili James Almer 6 years ago
parent
commit
71fd72070c
1 changed files with 3 additions and 3 deletions
  1. +3
    -3
      libavutil/buffer.c

+ 3
- 3
libavutil/buffer.c View File

@@ -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);
}



Loading…
Cancel
Save