[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