Merge commit '27079a426c9d3db918b158976e44b9b143d78e1c'
authorClément Bœsch <u@pkh.me>
Wed, 22 Mar 2017 16:46:01 +0000 (17:46 +0100)
committerClément Bœsch <u@pkh.me>
Wed, 22 Mar 2017 16:46:01 +0000 (17:46 +0100)
* commit '27079a426c9d3db918b158976e44b9b143d78e1c':
  buffer: convert to stdatomic

Merged-by: Clément Bœsch <u@pkh.me>
1  2 
libavutil/buffer.c
libavutil/buffer_internal.h

@@@ -107,15 -108,12 +108,15 @@@ static void buffer_replace(AVBufferRef 
  {
      AVBuffer *b;
  
 -    if (!buf || !*buf)
 -        return;
 -    b = (*buf)->buffer;
 -    av_freep(buf);
 +    b = (*dst)->buffer;
 +
 +    if (src) {
 +        **dst = **src;
 +        av_freep(src);
 +    } else
 +        av_freep(dst);
  
-     if (!avpriv_atomic_int_add_and_fetch(&b->refcount, -1)) {
+     if (atomic_fetch_add_explicit(&b->refcount, -1, memory_order_acq_rel) == 1) {
          b->free(b->opaque, b->data);
          av_freep(&b);
      }
@@@ -134,19 -124,9 +135,19 @@@ int av_buffer_is_writable(const AVBuffe
      if (buf->buffer->flags & AV_BUFFER_FLAG_READONLY)
          return 0;
  
-     return avpriv_atomic_int_get(&buf->buffer->refcount) == 1;
+     return atomic_load(&buf->buffer->refcount) == 1;
  }
  
-     return buf->buffer->refcount;
 +void *av_buffer_get_opaque(const AVBufferRef *buf)
 +{
 +    return buf->buffer->opaque;
 +}
 +
 +int av_buffer_get_ref_count(const AVBufferRef *buf)
 +{
++    return atomic_load(&buf->buffer->refcount);
 +}
 +
  int av_buffer_make_writable(AVBufferRef **pbuf)
  {
      AVBufferRef *newbuf, *buf = *pbuf;
Simple merge