[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33627] trunk/blender/source/blender/ python/intern/bpy_rna.c: exceptions in registering properties were not properly handled, allowing a single error stop the main module registration loop.

Campbell Barton ideasman42 at gmail.com
Mon Dec 13 08:54:35 CET 2010


Revision: 33627
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33627
Author:   campbellbarton
Date:     2010-12-13 08:54:35 +0100 (Mon, 13 Dec 2010)

Log Message:
-----------
exceptions in registering properties were not properly handled, allowing a single error stop the main module registration loop.
worst case 1 script error could load blender without a UI.

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

Modified: trunk/blender/source/blender/python/intern/bpy_rna.c
===================================================================
--- trunk/blender/source/blender/python/intern/bpy_rna.c	2010-12-13 06:54:25 UTC (rev 33626)
+++ trunk/blender/source/blender/python/intern/bpy_rna.c	2010-12-13 07:54:35 UTC (rev 33627)
@@ -4908,7 +4908,7 @@
 	PyObject *item, *key;
 	PyObject *order;
 	Py_ssize_t pos = 0;
-	int ret;
+	int ret= 0;
 
 	/* in both cases PyDict_CheckExact(class_dict) will be true even
 	 * though Operators have a metaclass dict namespace */
@@ -4918,7 +4918,7 @@
 			key= PyList_GET_ITEM(order, pos);
 			item= PyDict_GetItem(class_dict, key);
 			ret= deferred_register_prop(srna, key, item);
-			if(ret==-1)
+			if(ret != 0)
 				break;
 		}
 	}
@@ -4926,12 +4926,12 @@
 		while (PyDict_Next(class_dict, &pos, &key, &item)) {
 			ret= deferred_register_prop(srna, key, item);
 
-			if(ret==-1)
+			if(ret != 0)
 				break;
 		}
 	}
 
-	return 0;
+	return ret;
 }
 
 static int pyrna_deferred_register_class_recursive(StructRNA *srna, PyTypeObject *py_class)





More information about the Bf-blender-cvs mailing list