[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32906] trunk/blender/source/blender/ python/intern/bpy_operator.c: better exception check for calling operators.

Campbell Barton ideasman42 at gmail.com
Sun Nov 7 05:46:50 CET 2010


Revision: 32906
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32906
Author:   campbellbarton
Date:     2010-11-07 05:46:50 +0100 (Sun, 07 Nov 2010)

Log Message:
-----------
better exception check for calling operators. non dict/None values were being treated as None.

Modified Paths:
--------------
    trunk/blender/source/blender/python/intern/bpy_operator.c

Modified: trunk/blender/source/blender/python/intern/bpy_operator.c
===================================================================
--- trunk/blender/source/blender/python/intern/bpy_operator.c	2010-11-07 04:34:27 UTC (rev 32905)
+++ trunk/blender/source/blender/python/intern/bpy_operator.c	2010-11-07 04:46:50 UTC (rev 32906)
@@ -73,8 +73,13 @@
 		}
 	}
 	
-	if(!PyDict_Check(context_dict))
+	if(context_dict==NULL || context_dict==Py_None) {
 		context_dict= NULL;
+	}
+	else if (!PyDict_Check(context_dict)) {
+		PyErr_Format(PyExc_TypeError, "Calling operator \"bpy.ops.%s.poll\" error, custom context expected a dict or None, got a %.200s", opname, Py_TYPE(context_dict)->tp_name);
+		return NULL;
+	}
 
 	context_dict_back= CTX_py_dict_get(C);
 
@@ -130,8 +135,13 @@
 		}
 	}
 
-	if(!PyDict_Check(context_dict))
+	if(context_dict==NULL || context_dict==Py_None) {
 		context_dict= NULL;
+	}
+	else if (!PyDict_Check(context_dict)) {
+		PyErr_Format(PyExc_TypeError, "Calling operator \"bpy.ops.%s\" error, custom context expected a dict or None, got a %.200s", opname, Py_TYPE(context_dict)->tp_name);
+		return NULL;
+	}
 
 	context_dict_back= CTX_py_dict_get(C);
 





More information about the Bf-blender-cvs mailing list