diff options
author | Campbell Barton <ideasman42@gmail.com> | 2015-10-04 05:52:13 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2015-10-04 05:52:13 +0300 |
commit | 38f4aeb2d3da02e78307937add8f55ffc4b17845 (patch) | |
tree | d34a1d510e016c046c3e9feedc5f0eb65fe546e9 /source/blender/blenlib/intern/buffer.c | |
parent | 5443d418821a5f87f3f7bff2c04d2918d6c94374 (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.c | 8 |
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; } |