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:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2006-11-24 17:59:49 +0300
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2006-11-24 17:59:49 +0300
commit9d61481db49a5c78db4719eca83eb0999feb2be4 (patch)
tree1234c0ab292270b17aba2f2da9be05f729a092d4 /source/blender/blenkernel/intern/customdata.c
parent909cb06dfe89048eeeaa264d72bed0ed6a068376 (diff)
Bugfix: don't allocate custom data layers with zero size.
Diffstat (limited to 'source/blender/blenkernel/intern/customdata.c')
-rw-r--r--source/blender/blenkernel/intern/customdata.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/source/blender/blenkernel/intern/customdata.c b/source/blender/blenkernel/intern/customdata.c
index 6d17e51517c..422107fa273 100644
--- a/source/blender/blenkernel/intern/customdata.c
+++ b/source/blender/blenkernel/intern/customdata.c
@@ -550,13 +550,16 @@ void *CustomData_add_layer(CustomData *data, int type, int flag,
int size = layerType_getInfo(type)->size * totelem;
void *tmpdata = layerdata;
- if(!tmpdata)
- tmpdata = MEM_callocN(size, layerType_getName(type));
- if(!tmpdata)
- return NULL;
+ if(totelem > 0) {
+ if(!tmpdata)
+ tmpdata = MEM_callocN(size, layerType_getName(type));
+ if(!tmpdata)
+ return NULL;
+ }
if(!customData_add_layer__internal(data, type, flag, tmpdata)) {
- MEM_freeN(tmpdata);
+ if(tmpdata)
+ MEM_freeN(tmpdata);
return NULL;
}