[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [55292] trunk/blender/source/blender/ editors/mesh/editmesh_tools.c: Fix #34633: Merge First/Last crashes Blender
Sergey Sharybin
sergey.vfx at gmail.com
Fri Mar 15 08:08:00 CET 2013
Revision: 55292
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=55292
Author: nazgul
Date: 2013-03-15 07:08:00 +0000 (Fri, 15 Mar 2013)
Log Message:
-----------
Fix #34633: Merge First/Last crashes Blender
It was check happening when generating menu with available modes
for merge operator, but no checks happened when executing operator.
Since operator could be called from python or shortcut, it was
possible to bypass all the checks.
Modified Paths:
--------------
trunk/blender/source/blender/editors/mesh/editmesh_tools.c
Modified: trunk/blender/source/blender/editors/mesh/editmesh_tools.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editmesh_tools.c 2013-03-15 00:30:20 UTC (rev 55291)
+++ trunk/blender/source/blender/editors/mesh/editmesh_tools.c 2013-03-15 07:08:00 UTC (rev 55292)
@@ -2160,12 +2160,22 @@
BMVert *mergevert;
BMEditSelection *ese;
+ /* operator could be called directly from shortcut or python,
+ * so do extra check for data here
+ */
+
/* do sanity check in mergemenu in edit.c ?*/
if (first == 0) {
+ if (!em->bm->selected.last || ((BMEditSelection *)em->bm->selected.last)->htype != BM_VERT)
+ return OPERATOR_CANCELLED;
+
ese = em->bm->selected.last;
mergevert = (BMVert *)ese->ele;
}
else {
+ if (!em->bm->selected.first || ((BMEditSelection *)em->bm->selected.first)->htype != BM_VERT)
+ return OPERATOR_CANCELLED;
+
ese = em->bm->selected.first;
mergevert = (BMVert *)ese->ele;
}
More information about the Bf-blender-cvs
mailing list