From d571be6f5109ff5b256e4c14f391c916264f0a8e Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 29 Jun 2004 20:37:24 +0000 Subject: volume work git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@42 fefdeb5f-60dc-0310-8127-8f9354f1896f --- src/memblock.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/memblock.c') diff --git a/src/memblock.c b/src/memblock.c index 067243c5..79fe2977 100644 --- a/src/memblock.c +++ b/src/memblock.c @@ -78,3 +78,17 @@ void memblock_unref_fixed(struct memblock *b) { b->type = MEMBLOCK_DYNAMIC; } +void memchunk_make_writable(struct memchunk *c) { + struct memblock *n; + assert(c && c->memblock && c->memblock->ref >= 1); + + if (c->memblock->ref == 1) + return; + + n = memblock_new(c->length); + assert(n); + memcpy(n->data, c->memblock->data+c->index, c->length); + memblock_unref(c->memblock); + c->memblock = n; + c->index = 0; +} -- cgit