summaryrefslogtreecommitdiffstats
path: root/src/memblock.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2004-06-29 20:37:24 +0000
committerLennart Poettering <lennart@poettering.net>2004-06-29 20:37:24 +0000
commitd571be6f5109ff5b256e4c14f391c916264f0a8e (patch)
tree6d0a90457b7f807fbd9f2b187240ab78f7c32637 /src/memblock.c
parente31bac02573cc3090cac5816bea62a2fea888399 (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.c14
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;
+}