Revision: 24870
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=24870
Author:   campbellbarton
Date:     2009-11-24 21:15:24 +0100 (Tue, 24 Nov 2009)

Log Message:
-----------
disallow dynamic sized rna arrays to be returned as mathutils types since it 
gives unpradictable results if in one case it returns a vector and another a 
rna float array.

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        2009-11-24 
19:47:57 UTC (rev 24869)
+++ trunk/blender/source/blender/python/intern/bpy_rna.c        2009-11-24 
20:15:24 UTC (rev 24870)
@@ -140,18 +140,20 @@
        PyObject *ret= NULL;
 
 #ifdef USE_MATHUTILS
-       int type, subtype, totdim;
+       int subtype, totdim;
        int len;
 
+       /* disallow dynamic sized arrays to be wrapped since the size could 
change
+        * to a size mathutils does not support */
+       if ((RNA_property_type(prop) != PROP_FLOAT) || (RNA_property_flag(prop) 
& PROP_DYNAMIC))
+               return NULL;
+
        len= RNA_property_array_length(ptr, prop);
-       type= RNA_property_type(prop);
        subtype= RNA_property_subtype(prop);
        totdim= RNA_property_array_dimension(ptr, prop, NULL);
 
-       if (type != PROP_FLOAT) return NULL;
-
        if (totdim == 1 || (totdim == 2 && subtype == PROP_MATRIX)) {
-               ret = pyrna_prop_CreatePyObject(ptr, prop);
+               ret = pyrna_prop_CreatePyObject(ptr, prop); /* owned by the 
Mathutils PyObject */
 
                switch(RNA_property_subtype(prop)) {
                case PROP_TRANSLATION:


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

Reply via email to