[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [50917] trunk/blender/source/blender/ editors/sculpt_paint/sculpt_undo.c: minor change for sculpt undo, was getting the derived-mesh before calling sculpt_update_mesh_elements().
Campbell Barton
ideasman42 at gmail.com
Thu Sep 27 00:09:58 CEST 2012
Revision: 50917
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=50917
Author: campbellbarton
Date: 2012-09-26 22:09:56 +0000 (Wed, 26 Sep 2012)
Log Message:
-----------
minor change for sculpt undo, was getting the derived-mesh before calling sculpt_update_mesh_elements().
also add NULL check for BKE_key_from_object(), to avoid unlikely but possible NULL pointer dereference.
Modified Paths:
--------------
trunk/blender/source/blender/editors/sculpt_paint/sculpt_undo.c
Modified: trunk/blender/source/blender/editors/sculpt_paint/sculpt_undo.c
===================================================================
--- trunk/blender/source/blender/editors/sculpt_paint/sculpt_undo.c 2012-09-26 21:19:51 UTC (rev 50916)
+++ trunk/blender/source/blender/editors/sculpt_paint/sculpt_undo.c 2012-09-26 22:09:56 UTC (rev 50917)
@@ -108,7 +108,7 @@
/* shape key has been changed before calling undo operator */
Key *key = BKE_key_from_object(ob);
- KeyBlock *kb = BKE_keyblock_find_name(key, unode->shapeName);
+ KeyBlock *kb = key ? BKE_keyblock_find_name(key, unode->shapeName) : NULL;
if (kb) {
ob->shapenr = BLI_findindex(&key->block, kb) + 1;
@@ -266,13 +266,15 @@
Scene *scene = CTX_data_scene(C);
Sculpt *sd = CTX_data_tool_settings(C)->sculpt;
Object *ob = CTX_data_active_object(C);
- DerivedMesh *dm = mesh_get_derived_final(scene, ob, 0);
+ DerivedMesh *dm;
SculptSession *ss = ob->sculpt;
SculptUndoNode *unode;
MultiresModifierData *mmd;
int update = FALSE, rebuild = FALSE;
sculpt_update_mesh_elements(scene, sd, ob, 0);
+ /* call _after_ sculpt_update_mesh_elements() which may update 'ob->derivedFinal' */
+ dm = mesh_get_derived_final(scene, ob, 0);
for (unode = lb->first; unode; unode = unode->next) {
if (!(strcmp(unode->idname, ob->id.name) == 0))
More information about the Bf-blender-cvs
mailing list