[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [35961] trunk/blender/source/blender/ python/intern/bpy_rna.c: Fix register method order.

Martin Poirier theeth at yahoo.com
Sat Apr 2 16:58:59 CEST 2011


Revision: 35961
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=35961
Author:   theeth
Date:     2011-04-02 14:58:58 +0000 (Sat, 02 Apr 2011)
Log Message:
-----------
Fix register method order. Was broken when Campbell moved it to the C implementation.

register has to be called AFTER the type is registered while unregister has to be called BEFORE it's unregistered.

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	2011-04-02 14:11:13 UTC (rev 35960)
+++ trunk/blender/source/blender/python/intern/bpy_rna.c	2011-04-02 14:58:58 UTC (rev 35961)
@@ -6189,22 +6189,6 @@
 		return NULL;
 	}
 
-	/* call classed register function () */
-	py_cls_meth= PyObject_GetAttrString(py_class, "register");
-	if(py_cls_meth == NULL) {
-		PyErr_Clear();
-	}
-	else {
-		PyObject *ret= PyObject_CallObject(py_cls_meth, NULL);
-		if(ret) {
-			Py_DECREF(ret);
-		}
-		else {
-			return NULL;
-		}
-	}
-
-
 	/* get the context, so register callback can do necessary refreshes */
 	C= BPy_GetContext();
 
@@ -6238,6 +6222,21 @@
 	if(pyrna_deferred_register_class(srna_new, py_class)!=0)
 		return NULL;
 
+	/* call classed register method () */
+	py_cls_meth= PyObject_GetAttrString(py_class, "register");
+	if(py_cls_meth == NULL) {
+		PyErr_Clear();
+	}
+	else {
+		PyObject *ret= PyObject_CallObject(py_cls_meth, NULL);
+		if(ret) {
+			Py_DECREF(ret);
+		}
+		else {
+			return NULL;
+		}
+	}
+
 	Py_RETURN_NONE;
 }
 
@@ -6299,7 +6298,7 @@
 		return NULL;
 	}
 
-	/* call classed register function */
+	/* call classed unregister method */
 	py_cls_meth= PyObject_GetAttrString(py_class, "unregister");
 	if(py_cls_meth == NULL) {
 		PyErr_Clear();




More information about the Bf-blender-cvs mailing list