[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [57242] trunk/blender/source/blender/ editors/object/object_vgroup.c: yet another check for missing vertex groups needed (for 'Select/Deselect')

Campbell Barton ideasman42 at gmail.com
Tue Jun 4 23:54:16 CEST 2013


Revision: 57242
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57242
Author:   campbellbarton
Date:     2013-06-04 21:54:16 +0000 (Tue, 04 Jun 2013)
Log Message:
-----------
yet another check for missing vertex groups needed (for 'Select/Deselect')

Modified Paths:
--------------
    trunk/blender/source/blender/editors/object/object_vgroup.c

Modified: trunk/blender/source/blender/editors/object/object_vgroup.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_vgroup.c	2013-06-04 21:23:32 UTC (rev 57241)
+++ trunk/blender/source/blender/editors/object/object_vgroup.c	2013-06-04 21:54:16 UTC (rev 57242)
@@ -1062,21 +1062,24 @@
 		if (me->edit_btmesh) {
 			BMEditMesh *em = me->edit_btmesh;
 			const int cd_dvert_offset = CustomData_get_offset(&em->bm->vdata, CD_MDEFORMVERT);
-			BMIter iter;
-			BMVert *eve;
 
-			BM_ITER_MESH (eve, &iter, em->bm, BM_VERTS_OF_MESH) {
-				if (!BM_elem_flag_test(eve, BM_ELEM_HIDDEN)) {
-					MDeformVert *dv = BM_ELEM_CD_GET_VOID_P(eve, cd_dvert_offset);
-					if (defvert_find_index(dv, def_nr)) {
-						BM_vert_select_set(em->bm, eve, select);
+			if (cd_dvert_offset != -1) {
+				BMIter iter;
+				BMVert *eve;
+
+				BM_ITER_MESH (eve, &iter, em->bm, BM_VERTS_OF_MESH) {
+					if (!BM_elem_flag_test(eve, BM_ELEM_HIDDEN)) {
+						MDeformVert *dv = BM_ELEM_CD_GET_VOID_P(eve, cd_dvert_offset);
+						if (defvert_find_index(dv, def_nr)) {
+							BM_vert_select_set(em->bm, eve, select);
+						}
 					}
 				}
+
+				/* this has to be called, because this function operates on vertices only */
+				if (select) EDBM_select_flush(em);  /* vertices to edges/faces */
+				else EDBM_deselect_flush(em);
 			}
-
-			/* this has to be called, because this function operates on vertices only */
-			if (select) EDBM_select_flush(em);  /* vertices to edges/faces */
-			else EDBM_deselect_flush(em);
 		}
 		else {
 			if (me->dvert) {




More information about the Bf-blender-cvs mailing list