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();

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to