[Bf-blender-cvs] [c8467ccc8df] blender2.8: Fix T58310: Crash when removing multires modifier from sculpt object

Sergey Sharybin noreply at git.blender.org
Thu Dec 6 15:22:27 CET 2018


Commit: c8467ccc8df3a2d7fc161d227517361647ba83fc
Author: Sergey Sharybin
Date:   Thu Dec 6 15:20:16 2018 +0100
Branches: blender2.8
https://developer.blender.org/rBc8467ccc8df3a2d7fc161d227517361647ba83fc

Fix T58310: Crash when removing multires modifier from sculpt object

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

M	source/blender/blenkernel/intern/multires_reshape.c
M	source/blender/blenkernel/intern/object.c

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

diff --git a/source/blender/blenkernel/intern/multires_reshape.c b/source/blender/blenkernel/intern/multires_reshape.c
index 72be2617798..af3219ca06c 100644
--- a/source/blender/blenkernel/intern/multires_reshape.c
+++ b/source/blender/blenkernel/intern/multires_reshape.c
@@ -1163,6 +1163,11 @@ bool multiresModifier_reshapeFromCCG(
 		return false;
 	}
 	MDisps *mdisps = CustomData_get_layer(&coarse_mesh->ldata, CD_MDISPS);
+	if (mdisps == NULL) {
+		/* Multires displacement has been removed before current changes were
+		 * applies to all the levels. */
+		return false;
+	}
 	GridPaintMask *grid_paint_mask =
 	        CustomData_get_layer(&coarse_mesh->ldata, CD_GRID_PAINT_MASK);
 	Subdiv *subdiv = subdiv_ccg->subdiv;
diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c
index 3e2e890f542..694dae77bcd 100644
--- a/source/blender/blenkernel/intern/object.c
+++ b/source/blender/blenkernel/intern/object.c
@@ -425,6 +425,9 @@ static void object_update_from_subsurf_ccg(Object *object)
 	Mesh *mesh_cow = object->runtime.mesh_orig;
 	copy_ccg_data(mesh_cow, mesh_orig, CD_MDISPS);
 	copy_ccg_data(mesh_cow, mesh_orig, CD_GRID_PAINT_MASK);
+	/* Everything is now up-to-date. */
+	subdiv_ccg->dirty.coords = false;
+	subdiv_ccg->dirty.hidden = false;
 }
 
 /* free data derived from mesh, called when mesh changes or is freed */



More information about the Bf-blender-cvs mailing list