Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2015-10-04 05:52:13 +0300
committerCampbell Barton <ideasman42@gmail.com>2015-10-04 05:52:13 +0300
commit38f4aeb2d3da02e78307937add8f55ffc4b17845 (patch)
treed34a1d510e016c046c3e9feedc5f0eb65fe546e9 /source/blender/blenlib/intern/buffer.c
parent5443d418821a5f87f3f7bff2c04d2918d6c94374 (diff)
BLI_Buffer: fix BLI_buffer_resize w/ calloc flag
When resizing, zero memory when the calloc flag is set, even when no realloc is done.
Diffstat (limited to 'source/blender/blenlib/intern/buffer.c')
-rw-r--r--source/blender/blenlib/intern/buffer.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/source/blender/blenlib/intern/buffer.c b/source/blender/blenlib/intern/buffer.c
index 9e96205a5e8..ed47efd93eb 100644
--- a/source/blender/blenlib/intern/buffer.c
+++ b/source/blender/blenlib/intern/buffer.c
@@ -65,6 +65,14 @@ void BLI_buffer_resize(BLI_Buffer *buffer, int new_count)
buffer->data = buffer_realloc(buffer, buffer->alloc_count);
}
}
+ else {
+ if (buffer->flag & BLI_BUFFER_USE_CALLOC) {
+ if (new_count > buffer->count) {
+ memset(POINTER_OFFSET(buffer->data, buffer->elem_size * buffer->count), 0,
+ buffer->elem_size * (new_count - buffer->count));
+ }
+ }
+ }
buffer->count = new_count;
}