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:
authorBastien Montagne <bastien@blender.org>2022-05-19 13:04:07 +0300
committerBastien Montagne <bastien@blender.org>2022-05-19 13:04:07 +0300
commit4fc96e5000ce037b0247199e2c9fc440fbcc713f (patch)
tree3fb955f92ce61478faf6c68d25c05485352fc98b /source/blender/blenkernel/intern/mesh_convert.cc
parentf4cbfaded657886efa373a1fdbb45042be8e6c5c (diff)
parent24745e8d27903ae741565c5e15f147d206a1030e (diff)
Merge branch 'blender-v3.2-release'
Conflicts: source/blender/blenkernel/intern/lib_override.c
Diffstat (limited to 'source/blender/blenkernel/intern/mesh_convert.cc')
-rw-r--r--source/blender/blenkernel/intern/mesh_convert.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/mesh_convert.cc b/source/blender/blenkernel/intern/mesh_convert.cc
index 07c9bccacc3..97eafb75102 100644
--- a/source/blender/blenkernel/intern/mesh_convert.cc
+++ b/source/blender/blenkernel/intern/mesh_convert.cc
@@ -890,8 +890,15 @@ static void object_for_curve_to_mesh_free(Object *temp_object)
curve.editnurb = nullptr;
}
- BKE_id_free(nullptr, temp_object->data);
+ /* Only free the final object data if it is *not* stored in the #data_eval field. This is still
+ * necessary because #temp_object's data could be replaced by a #Curve data-block that isn't also
+ * assigned to #data_eval. */
+ const bool object_data_stored_in_data_eval = final_object_data == temp_object->runtime.data_eval;
+
BKE_id_free(nullptr, temp_object);
+ if (!object_data_stored_in_data_eval) {
+ BKE_id_free(nullptr, final_object_data);
+ }
}
/**