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:
authorSergey Sharybin <sergey.vfx@gmail.com>2015-08-25 11:29:40 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2015-08-25 11:30:46 +0300
commitc6d75628968818aa38b881d0bcaca7c07fc6492a (patch)
treecc13f8a614ff1cbe64e57a4d000dda0b5e661b7e /source/blender/blenkernel/intern/customdata.c
parent540f9a3b11d20e8ee75718dfd8eb5a750d1864ef (diff)
Fix T45729: Cycles Bake break when building a special mesh
The issue was caused by CD_SHAPEKEY_INDEX layer being added to edge data, now we make sure all the layers are nicely re-allocated.
Diffstat (limited to 'source/blender/blenkernel/intern/customdata.c')
-rw-r--r--source/blender/blenkernel/intern/customdata.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/customdata.c b/source/blender/blenkernel/intern/customdata.c
index 2e377195d67..3cf8730e3af 100644
--- a/source/blender/blenkernel/intern/customdata.c
+++ b/source/blender/blenkernel/intern/customdata.c
@@ -1504,6 +1504,23 @@ bool CustomData_merge(const struct CustomData *source, struct CustomData *dest,
return changed;
}
+/* NOTE: Take care of referenced layers by yourself! */
+void CustomData_realloc(CustomData *data, int totelem)
+{
+ int i;
+ for (i = 0; i < data->totlayer; ++i) {
+ CustomDataLayer *layer = &data->layers[i];
+ const LayerTypeInfo *typeInfo;
+ int size;
+ if (layer->flag & CD_FLAG_NOFREE) {
+ continue;
+ }
+ typeInfo = layerType_getInfo(layer->type);
+ size = totelem * typeInfo->size;
+ layer->data = MEM_reallocN(layer->data, size);
+ }
+}
+
void CustomData_copy(const struct CustomData *source, struct CustomData *dest,
CustomDataMask mask, int alloctype, int totelem)
{