BLI_buffer: simplify buffer resize

This commit is contained in:
2014-10-05 10:31:47 +02:00
parent a613290775
commit 15af15eb56

View File

@@ -38,17 +38,14 @@ static void *buffer_alloc(BLI_Buffer *buffer, int len)
static void *buffer_realloc(BLI_Buffer *buffer, int len)
{
if (buffer->flag & BLI_BUFFER_USE_CALLOC) {
return MEM_recallocN(buffer->data, buffer->elem_size * len);
}
else {
return MEM_reallocN(buffer->data, buffer->elem_size * len);
}
return ((buffer->flag & BLI_BUFFER_USE_CALLOC) ?
MEM_recallocN_id : MEM_reallocN_id)
(buffer->data, buffer->elem_size * len, "BLI_Buffer.data");
}
void BLI_buffer_resize(BLI_Buffer *buffer, int new_count)
{
if (new_count > buffer->alloc_count) {
if (UNLIKELY(new_count > buffer->alloc_count)) {
if (buffer->flag & BLI_BUFFER_USE_STATIC) {
void *orig = buffer->data;
@@ -65,12 +62,7 @@ void BLI_buffer_resize(BLI_Buffer *buffer, int new_count)
buffer->alloc_count = new_count;
}
if (buffer->data) {
buffer->data = buffer_realloc(buffer, buffer->alloc_count);
}
else {
buffer->data = buffer_alloc(buffer, buffer->alloc_count);
}
buffer->data = buffer_realloc(buffer, buffer->alloc_count);
}
}