diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c index c8d5bb5ffd7..3c9e0efa12e 100644 --- a/source/blender/blenkernel/intern/DerivedMesh.c +++ b/source/blender/blenkernel/intern/DerivedMesh.c @@ -1294,7 +1294,11 @@ static Mesh *create_orco_mesh(Object *ob, Mesh *me, BMEditMesh *em, int layer) else { BKE_id_copy_ex( NULL, &me->id, (ID **)&mesh, - LIB_ID_CREATE_NO_MAIN | LIB_ID_CREATE_NO_USER_REFCOUNT | LIB_ID_CREATE_NO_DEG_TAG, false); + (LIB_ID_CREATE_NO_MAIN | + LIB_ID_CREATE_NO_USER_REFCOUNT | + LIB_ID_CREATE_NO_DEG_TAG | + LIB_ID_COPY_CD_REFERENCE), + false); } orco = get_orco_coords_dm(ob, em, layer, &free); @@ -2125,7 +2129,11 @@ static void mesh_calc_modifiers( if (r_deform_mesh) { BKE_id_copy_ex( NULL, &me->id, (ID **)r_deform_mesh, - LIB_ID_CREATE_NO_MAIN | LIB_ID_CREATE_NO_USER_REFCOUNT | LIB_ID_CREATE_NO_DEG_TAG, false); + (LIB_ID_CREATE_NO_MAIN | + LIB_ID_CREATE_NO_USER_REFCOUNT | + LIB_ID_CREATE_NO_DEG_TAG | + LIB_ID_COPY_CD_REFERENCE), + false); /* XXX: Is build_shapekey_layers ever even true? This should have crashed long ago... */ BLI_assert(!build_shapekey_layers); @@ -2268,7 +2276,11 @@ static void mesh_calc_modifiers( else { BKE_id_copy_ex( NULL, &me->id, (ID **)&mesh, - LIB_ID_CREATE_NO_MAIN | LIB_ID_CREATE_NO_USER_REFCOUNT | LIB_ID_CREATE_NO_DEG_TAG, false); + (LIB_ID_CREATE_NO_MAIN | + LIB_ID_CREATE_NO_USER_REFCOUNT | + LIB_ID_CREATE_NO_DEG_TAG | + LIB_ID_COPY_CD_REFERENCE), + false); ASSERT_IS_VALID_MESH(mesh); // XXX: port to Mesh if build_shapekey_layers can ever be true @@ -2439,7 +2451,11 @@ static void mesh_calc_modifiers( else { BKE_id_copy_ex( NULL, &me->id, (ID **)&final_mesh, - LIB_ID_CREATE_NO_MAIN | LIB_ID_CREATE_NO_USER_REFCOUNT | LIB_ID_CREATE_NO_DEG_TAG, false); + (LIB_ID_CREATE_NO_MAIN | + LIB_ID_CREATE_NO_USER_REFCOUNT | + LIB_ID_CREATE_NO_DEG_TAG | + LIB_ID_COPY_CD_REFERENCE), + false); //if (build_shapekey_layers) { // add_shapekey_layers(final_mesh, me, ob);