mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-02-04 06:08:26 +02:00
avutil/buffer: use appropriate atomic operations
No functional changes. ref/unref vs add/sub is symmetrical. Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
parent
964eb754b4
commit
71fd72070c
@ -116,7 +116,7 @@ static void buffer_replace(AVBufferRef **dst, AVBufferRef **src)
|
|||||||
} else
|
} else
|
||||||
av_freep(dst);
|
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);
|
b->free(b->opaque, b->data);
|
||||||
av_freep(&b);
|
av_freep(&b);
|
||||||
}
|
}
|
||||||
@ -281,7 +281,7 @@ void av_buffer_pool_uninit(AVBufferPool **ppool)
|
|||||||
pool = *ppool;
|
pool = *ppool;
|
||||||
*ppool = NULL;
|
*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);
|
buffer_pool_free(pool);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -298,7 +298,7 @@ static void pool_release_buffer(void *opaque, uint8_t *data)
|
|||||||
pool->pool = buf;
|
pool->pool = buf;
|
||||||
ff_mutex_unlock(&pool->mutex);
|
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);
|
buffer_pool_free(pool);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user