diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2006-11-24 17:59:49 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2006-11-24 17:59:49 +0300 |
commit | 9d61481db49a5c78db4719eca83eb0999feb2be4 (patch) | |
tree | 1234c0ab292270b17aba2f2da9be05f729a092d4 /source/blender/blenkernel/intern/customdata.c | |
parent | 909cb06dfe89048eeeaa264d72bed0ed6a068376 (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.c | 13 |
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; } |