From e3be7b11592994139a9649d5750654ddfb4e7059 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Sun, 17 Mar 2013 16:37:06 +0100 Subject: [PATCH] avutil/get_pool: Remove redundant initial atomic operation 602->442 dezicycles Signed-off-by: Michael Niedermayer --- libavutil/buffer.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libavutil/buffer.c b/libavutil/buffer.c index d268a7f604..3475e57b4a 100644 --- a/libavutil/buffer.c +++ b/libavutil/buffer.c @@ -239,14 +239,14 @@ void av_buffer_pool_uninit(AVBufferPool **ppool) /* remove the whole buffer list from the pool and return it */ static BufferPoolEntry *get_pool(AVBufferPool *pool) { - BufferPoolEntry *cur = NULL, *last = NULL; + BufferPoolEntry *cur = *(void * volatile *)&pool->pool, *last = NULL; - do { + while (cur != last) { FFSWAP(BufferPoolEntry*, cur, last); cur = avpriv_atomic_ptr_cas((void * volatile *)&pool->pool, last, NULL); if (!cur) return NULL; - } while (cur != last); + } return cur; }