[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [42124] trunk/blender/source/blender/ blenlib/intern/pbvh.c: Fix #29384: Mesh without polygons + Modifier crashes when switching to sculpt mode
Sergey Sharybin
sergey.vfx at gmail.com
Thu Nov 24 14:39:48 CET 2011
Revision: 42124
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=42124
Author: nazgul
Date: 2011-11-24 13:39:43 +0000 (Thu, 24 Nov 2011)
Log Message:
-----------
Fix #29384: Mesh without polygons + Modifier crashes when switching to sculpt mode
There were some issues with PBVH which prevented working it for meshes without faces.
Discussed with Brecht, for benefits of dynamic-topology-sculpting and so better to
make PBVH survive such things.
Added some extra NULL-pointer checks for this.
Modified Paths:
--------------
trunk/blender/source/blender/blenlib/intern/pbvh.c
Modified: trunk/blender/source/blender/blenlib/intern/pbvh.c
===================================================================
--- trunk/blender/source/blender/blenlib/intern/pbvh.c 2011-11-24 13:07:02 UTC (rev 42123)
+++ trunk/blender/source/blender/blenlib/intern/pbvh.c 2011-11-24 13:39:43 UTC (rev 42124)
@@ -656,12 +656,17 @@
/* if pbvh was deformed, new memory was allocated for verts/faces -- free it */
MEM_freeN(bvh->verts);
- MEM_freeN(bvh->faces);
+ if(bvh->faces)
+ MEM_freeN(bvh->faces);
}
}
- MEM_freeN(bvh->nodes);
- MEM_freeN(bvh->prim_indices);
+ if(bvh->nodes)
+ MEM_freeN(bvh->nodes);
+
+ if(bvh->prim_indices)
+ MEM_freeN(bvh->prim_indices);
+
MEM_freeN(bvh);
}
@@ -1127,6 +1132,9 @@
PBVHNode **nodes;
int totnode;
+ if(!bvh->nodes)
+ return;
+
BLI_pbvh_search_gather(bvh, update_search_cb, SET_INT_IN_POINTER(flag),
&nodes, &totnode);
More information about the Bf-blender-cvs
mailing list