[FFmpeg-cvslog] avutil/get_pool: Remove redundant initial atomic operation

Michael Niedermayer git at videolan.org
Sun Mar 17 21:10:43 CET 2013


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Sun Mar 17 16:37:06 2013 +0100| [e3be7b11592994139a9649d5750654ddfb4e7059] | committer: Michael Niedermayer

avutil/get_pool: Remove redundant initial atomic operation

602->442 dezicycles

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e3be7b11592994139a9649d5750654ddfb4e7059
---

 libavutil/buffer.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/libavutil/buffer.c b/libavutil/buffer.c
index d268a7f..3475e57 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;
 }



More information about the ffmpeg-cvslog mailing list