diff options
author | Lennart Poettering <lennart@poettering.net> | 2004-06-29 20:37:24 +0000 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2004-06-29 20:37:24 +0000 |
commit | d571be6f5109ff5b256e4c14f391c916264f0a8e (patch) | |
tree | 6d0a90457b7f807fbd9f2b187240ab78f7c32637 /src/memblock.c | |
parent | e31bac02573cc3090cac5816bea62a2fea888399 (diff) |
volume work
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@42 fefdeb5f-60dc-0310-8127-8f9354f1896f
Diffstat (limited to 'src/memblock.c')
-rw-r--r-- | src/memblock.c | 14 |
1 files changed, 14 insertions, 0 deletions
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; +} |