[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [59545] trunk/blender/source/blender/ python/bmesh/bmesh_py_types.c: fix [#36528] crash when reinitializing bmesh from mesh

Campbell Barton ideasman42 at gmail.com
Tue Aug 27 02:39:52 CEST 2013


Revision: 59545
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=59545
Author:   campbellbarton
Date:     2013-08-27 00:39:51 +0000 (Tue, 27 Aug 2013)
Log Message:
-----------
fix [#36528] crash when reinitializing bmesh from mesh

Modified Paths:
--------------
    trunk/blender/source/blender/python/bmesh/bmesh_py_types.c

Modified: trunk/blender/source/blender/python/bmesh/bmesh_py_types.c
===================================================================
--- trunk/blender/source/blender/python/bmesh/bmesh_py_types.c	2013-08-26 23:59:46 UTC (rev 59544)
+++ trunk/blender/source/blender/python/bmesh/bmesh_py_types.c	2013-08-27 00:39:51 UTC (rev 59545)
@@ -1047,6 +1047,8 @@
 	int use_shape_key = false;
 	int shape_key_index = 0;
 
+	BPY_BM_CHECK_OBJ(self);
+
 	if (!PyArg_ParseTupleAndKeywords(args, kw, "O|iii:from_mesh", (char **)kwlist,
 	                                 &py_mesh, &use_fnorm, &use_shape_key, &shape_key_index) ||
 	    !(me = PyC_RNA_AsPointer(py_mesh, "Mesh")))
@@ -2918,7 +2920,8 @@
 	BMesh *bm = self->bm;
 	if (bm) {
 		void **ptr = CustomData_bmesh_get(&bm->vdata, self->ele->head.data, CD_BM_ELEM_PYPTR);
-		*ptr = NULL;
+		if (ptr)
+			*ptr = NULL;
 	}
 	PyObject_DEL(self);
 }
@@ -2928,7 +2931,8 @@
 	BMesh *bm = self->bm;
 	if (bm) {
 		void **ptr = CustomData_bmesh_get(&bm->edata, self->ele->head.data, CD_BM_ELEM_PYPTR);
-		*ptr = NULL;
+		if (ptr)
+			*ptr = NULL;
 	}
 	PyObject_DEL(self);
 }
@@ -2938,7 +2942,8 @@
 	BMesh *bm = self->bm;
 	if (bm) {
 		void **ptr = CustomData_bmesh_get(&bm->pdata, self->ele->head.data, CD_BM_ELEM_PYPTR);
-		*ptr = NULL;
+		if (ptr)
+			*ptr = NULL;
 	}
 	PyObject_DEL(self);
 }
@@ -2948,7 +2953,8 @@
 	BMesh *bm = self->bm;
 	if (bm) {
 		void **ptr = CustomData_bmesh_get(&bm->ldata, self->ele->head.data, CD_BM_ELEM_PYPTR);
-		*ptr = NULL;
+		if (ptr)
+			*ptr = NULL;
 	}
 	PyObject_DEL(self);
 }




More information about the Bf-blender-cvs mailing list