[Bf-blender-cvs] [db0563e995f] blender2.8: Fix re-entrant calls in some cases of mesh_evaluated generation.

Bastien Montagne noreply at git.blender.org
Tue Jun 19 19:15:26 CEST 2018


Commit: db0563e995f4bb63e7a05faee3c08ea18d5a28eb
Author: Bastien Montagne
Date:   Tue Jun 19 19:00:25 2018 +0200
Branches: blender2.8
https://developer.blender.org/rBdb0563e995f4bb63e7a05faee3c08ea18d5a28eb

Fix re-entrant calls in some cases of mesh_evaluated generation.

`mesh_get_eval_final` and friends could call `mesh_build_data`, which in
paint/sculpt mode would call `BKE_sculpt_update_mesh_elements` which
would call `mesh_get_eval_final`... ugly!

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

M	source/blender/blenkernel/intern/DerivedMesh.c

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

diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c
index b2542ace86e..5a4dc479c10 100644
--- a/source/blender/blenkernel/intern/DerivedMesh.c
+++ b/source/blender/blenkernel/intern/DerivedMesh.c
@@ -3017,8 +3017,9 @@ static void mesh_build_data(
 	if ((ob->mode & OB_MODE_ALL_SCULPT) && ob->sculpt) {
 		/* create PBVH immediately (would be created on the fly too,
 		 * but this avoids waiting on first stroke) */
-
-		BKE_sculpt_update_mesh_elements(depsgraph, scene, scene->toolsettings->sculpt, ob, false, false);
+		/* XXX Disabled for now.
+		 * This can create horrible nasty bugs by generating re-entrant call of mesh_get_eval_final! */
+//		BKE_sculpt_update_mesh_elements(depsgraph, scene, scene->toolsettings->sculpt, ob, false, false);
 	}
 
 	BLI_assert(!(ob->derivedFinal->dirty & DM_DIRTY_NORMALS));



More information about the Bf-blender-cvs mailing list