Revision: 34484
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=34484
Author:   campbellbarton
Date:     2011-01-25 07:31:11 +0000 (Tue, 25 Jan 2011)
Log Message:
-----------
improve unregister error check not to loop over parent classes properties 
(would check the same property multiple times)

Modified Paths:
--------------
    trunk/blender/source/blender/makesrna/RNA_access.h
    trunk/blender/source/blender/makesrna/intern/rna_access.c
    trunk/blender/source/blender/python/intern/bpy_rna.c

Modified: trunk/blender/source/blender/makesrna/RNA_access.h
===================================================================
--- trunk/blender/source/blender/makesrna/RNA_access.h  2011-01-25 06:54:57 UTC 
(rev 34483)
+++ trunk/blender/source/blender/makesrna/RNA_access.h  2011-01-25 07:31:11 UTC 
(rev 34484)
@@ -623,7 +623,7 @@
 PropertyRNA *RNA_struct_type_find_property(StructRNA *srna, const char 
*identifier);
 
 FunctionRNA *RNA_struct_find_function(PointerRNA *ptr, const char *identifier);
-const struct ListBase *RNA_struct_defined_functions(StructRNA *srna);
+const struct ListBase *RNA_struct_type_functions(StructRNA *srna);
 
 char *RNA_struct_name_get_alloc(PointerRNA *ptr, char *fixedbuf, int fixedlen);
 

Modified: trunk/blender/source/blender/makesrna/intern/rna_access.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_access.c   2011-01-25 
06:54:57 UTC (rev 34483)
+++ trunk/blender/source/blender/makesrna/intern/rna_access.c   2011-01-25 
07:31:11 UTC (rev 34484)
@@ -616,7 +616,7 @@
 #endif
 }
 
-const struct ListBase *RNA_struct_defined_functions(StructRNA *srna)
+const struct ListBase *RNA_struct_type_functions(StructRNA *srna)
 {
        return &srna->functions;
 }

Modified: trunk/blender/source/blender/python/intern/bpy_rna.c
===================================================================
--- trunk/blender/source/blender/python/intern/bpy_rna.c        2011-01-25 
06:54:57 UTC (rev 34483)
+++ trunk/blender/source/blender/python/intern/bpy_rna.c        2011-01-25 
07:31:11 UTC (rev 34484)
@@ -5166,7 +5166,7 @@
        }
 
        /* verify callback functions */
-       lb= RNA_struct_defined_functions(srna);
+       lb= RNA_struct_type_functions(srna);
        i= 0;
        for(link=lb->first; link; link=link->next) {
                func= (FunctionRNA*)link;
@@ -5668,26 +5668,25 @@
 
 static int pyrna_srna_contains_pointer_prop_srna(StructRNA *srna_props, 
StructRNA *srna, const char **prop_identifier)
 {
-       PointerRNA tptr;
-       PropertyRNA *iterprop;
-       RNA_pointer_create(NULL, &RNA_Struct, srna_props, &tptr);
-       
-       iterprop= RNA_struct_find_property(&tptr, "properties");
+       PropertyRNA *prop;
+       LinkData *link;
 
-       RNA_PROP_BEGIN(&tptr, itemptr, iterprop) {
-               PropertyRNA *prop= itemptr.data;
-               if(RNA_property_type(prop) == PROP_POINTER) {
-                       if (strcmp(RNA_property_identifier(prop), "rna_type") 
== 0) {
-                               /* pass */
-                       }
-                       else if(RNA_property_pointer_type(&tptr, prop) == srna) 
{
+       /* verify properties */
+       const ListBase *lb= RNA_struct_type_properties(srna);
+
+       for(link=lb->first; link; link=link->next) {
+               prop= (PropertyRNA*)link;
+               if(RNA_property_type(prop) == PROP_POINTER && 
!(RNA_property_flag(prop) & PROP_BUILTIN)) {
+                       PointerRNA tptr;
+                       RNA_pointer_create(NULL, &RNA_Struct, srna_props, 
&tptr);
+
+                       if(RNA_property_pointer_type(&tptr, prop) == srna) {
                                *prop_identifier= RNA_property_identifier(prop);
                                return 1;
                        }
                }
        }
-       RNA_PROP_END;
-       
+
        return 0;
 }
 

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

Reply via email to