diff options
Diffstat (limited to 'source/blender/blenkernel/intern/customdata.c')
-rw-r--r-- | source/blender/blenkernel/intern/customdata.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/customdata.c b/source/blender/blenkernel/intern/customdata.c index 483a4b979b9..65ec6be5a60 100644 --- a/source/blender/blenkernel/intern/customdata.c +++ b/source/blender/blenkernel/intern/customdata.c @@ -1810,7 +1810,13 @@ static CustomDataLayer *customData_add_layer__internal(CustomData *data, int typ newlayerdata = layerdata; } else if (size > 0) { - newlayerdata = MEM_callocN(size, layerType_getName(type)); + if (alloctype == CD_DUPLICATE && layerdata) { + newlayerdata = MEM_mallocN(size, layerType_getName(type)); + } + else { + newlayerdata = MEM_callocN(size, layerType_getName(type)); + } + if (!newlayerdata) return NULL; } |