[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [49462] trunk/blender/source/blender/ editors/object/object_modifier.c: fix some more crashes when running skin operators on a mesh with no skin layer
Campbell Barton
ideasman42 at gmail.com
Wed Aug 1 17:04:11 CEST 2012
Revision: 49462
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49462
Author: campbellbarton
Date: 2012-08-01 15:04:10 +0000 (Wed, 01 Aug 2012)
Log Message:
-----------
fix some more crashes when running skin operators on a mesh with no skin layer
Modified Paths:
--------------
trunk/blender/source/blender/editors/object/object_modifier.c
Modified: trunk/blender/source/blender/editors/object/object_modifier.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_modifier.c 2012-08-01 15:02:09 UTC (rev 49461)
+++ trunk/blender/source/blender/editors/object/object_modifier.c 2012-08-01 15:04:10 UTC (rev 49462)
@@ -1518,8 +1518,8 @@
static int skin_root_mark_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *ob = CTX_data_edit_object(C);
- Mesh *me = ob->data;
- BMesh *bm = me->edit_btmesh->bm;
+ BMEditMesh *em = BMEdit_FromObject(ob);
+ BMesh *bm = em->bm;
BMVert *bm_vert;
BMIter bm_iter;
GHash *visited;
@@ -1574,12 +1574,16 @@
static int skin_loose_mark_clear_exec(bContext *C, wmOperator *op)
{
Object *ob = CTX_data_edit_object(C);
- Mesh *me = ob->data;
- BMesh *bm = me->edit_btmesh->bm;
+ BMEditMesh *em = BMEdit_FromObject(ob);
+ BMesh *bm = em->bm;
BMVert *bm_vert;
BMIter bm_iter;
SkinLooseAction action = RNA_enum_get(op->ptr, "action");
+ if (!CustomData_has_layer(&bm->vdata, CD_MVERT_SKIN)) {
+ return OPERATOR_CANCELLED;
+ }
+
BM_ITER_MESH (bm_vert, &bm_iter, bm, BM_VERTS_OF_MESH) {
if (bm_vert->head.hflag & BM_ELEM_SELECT) {
MVertSkin *vs = CustomData_bmesh_get(&bm->vdata,
@@ -1628,11 +1632,15 @@
static int skin_radii_equalize_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *ob = CTX_data_edit_object(C);
- Mesh *me = ob->data;
- BMesh *bm = me->edit_btmesh->bm;
+ BMEditMesh *em = BMEdit_FromObject(ob);
+ BMesh *bm = em->bm;
BMVert *bm_vert;
BMIter bm_iter;
+ if (!CustomData_has_layer(&bm->vdata, CD_MVERT_SKIN)) {
+ return OPERATOR_CANCELLED;
+ }
+
BM_ITER_MESH (bm_vert, &bm_iter, bm, BM_VERTS_OF_MESH) {
if (bm_vert->head.hflag & BM_ELEM_SELECT) {
MVertSkin *vs = CustomData_bmesh_get(&bm->vdata,
More information about the Bf-blender-cvs
mailing list