[Bf-blender-cvs] [25c918196ce] blender2.8: Fix T56500: Origin to geometry crashes on armature

Dalai Felinto noreply at git.blender.org
Thu Aug 23 15:20:31 CEST 2018


Commit: 25c918196ce66eff4417d7d2e1d3da8c11d96735
Author: Dalai Felinto
Date:   Wed Aug 22 17:02:37 2018 -0300
Branches: blender2.8
https://developer.blender.org/rB25c918196ce66eff4417d7d2e1d3da8c11d96735

Fix T56500: Origin to geometry crashes on armature

Reviewers: sergey

https://developer.blender.org/D3639

===================================================================

M	source/blender/blenkernel/BKE_object.h
M	source/blender/blenkernel/intern/object_update.c
M	source/blender/editors/object/object_transform.c

===================================================================

diff --git a/source/blender/blenkernel/BKE_object.h b/source/blender/blenkernel/BKE_object.h
index 7d795c25a04..90df5a5441a 100644
--- a/source/blender/blenkernel/BKE_object.h
+++ b/source/blender/blenkernel/BKE_object.h
@@ -308,6 +308,8 @@ struct MovieClip *BKE_object_movieclip_get(struct Scene *scene, struct Object *o
 
 void BKE_object_runtime_reset(struct Object *object);
 
+void BKE_object_batch_cache_dirty(struct Object *ob);
+
 /* this function returns a superset of the scenes selection based on relationships */
 
 typedef enum eObRelationTypes {
diff --git a/source/blender/blenkernel/intern/object_update.c b/source/blender/blenkernel/intern/object_update.c
index 3641df26496..52e3d4a0803 100644
--- a/source/blender/blenkernel/intern/object_update.c
+++ b/source/blender/blenkernel/intern/object_update.c
@@ -302,14 +302,8 @@ void BKE_object_eval_uber_transform(Depsgraph *depsgraph, Object *object)
 	BKE_object_eval_proxy_copy(depsgraph, object);
 }
 
-void BKE_object_eval_uber_data(Depsgraph *depsgraph,
-                               Scene *scene,
-                               Object *ob)
+void BKE_object_batch_cache_dirty(Object *ob)
 {
-	DEG_debug_print_eval(depsgraph, __func__, ob->id.name, ob);
-	BLI_assert(ob->type != OB_ARMATURE);
-	BKE_object_handle_data_update(depsgraph, scene, ob);
-
 	switch (ob->type) {
 		case OB_MESH:
 			BKE_mesh_batch_cache_dirty(ob->data, BKE_MESH_BATCH_DIRTY_ALL);
@@ -331,6 +325,16 @@ void BKE_object_eval_uber_data(Depsgraph *depsgraph,
 	}
 }
 
+void BKE_object_eval_uber_data(Depsgraph *depsgraph,
+                               Scene *scene,
+                               Object *ob)
+{
+	DEG_debug_print_eval(depsgraph, __func__, ob->id.name, ob);
+	BLI_assert(ob->type != OB_ARMATURE);
+	BKE_object_handle_data_update(depsgraph, scene, ob);
+	BKE_object_batch_cache_dirty(ob);
+}
+
 void BKE_object_eval_cloth(Depsgraph *depsgraph,
                            Scene *scene,
                            Object *object)
diff --git a/source/blender/editors/object/object_transform.c b/source/blender/editors/object/object_transform.c
index 96b540251b4..fb54c9ec2c2 100644
--- a/source/blender/editors/object/object_transform.c
+++ b/source/blender/editors/object/object_transform.c
@@ -1216,7 +1216,7 @@ static int object_origin_set_exec(bContext *C, wmOperator *op)
 
 	for (tob = bmain->object.first; tob; tob = tob->id.next) {
 		if (tob->data && (((ID *)tob->data)->tag & LIB_TAG_DOIT)) {
-			BKE_mesh_batch_cache_dirty(tob->data, BKE_MESH_BATCH_DIRTY_ALL);
+			BKE_object_batch_cache_dirty(tob);
 			DEG_id_tag_update(&tob->id, OB_RECALC_OB | OB_RECALC_DATA);
 		}
 	}



More information about the Bf-blender-cvs mailing list