Commit b4f5da26 authored by Michael Niedermayer's avatar Michael Niedermayer

avutil/buffer: factor buffer_replace() out

Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent ecd39520
......@@ -103,14 +103,17 @@ AVBufferRef *av_buffer_ref(AVBufferRef *buf)
return ret;
}
void av_buffer_unref(AVBufferRef **buf)
static void buffer_replace(AVBufferRef **dst, AVBufferRef **src)
{
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)) {
b->free(b->opaque, b->data);
......@@ -118,6 +121,14 @@ void av_buffer_unref(AVBufferRef **buf)
}
}
void av_buffer_unref(AVBufferRef **buf)
{
if (!buf || !*buf)
return;
buffer_replace(buf, NULL);
}
int av_buffer_is_writable(const AVBufferRef *buf)
{
if (buf->buffer->flags & AV_BUFFER_FLAG_READONLY)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment