[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [24870] trunk/blender/source/blender/ python/intern/bpy_rna.c: 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 .
Campbell Barton
ideasman42 at gmail.com
Tue Nov 24 21:15:25 CET 2009
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:
More information about the Bf-blender-cvs
mailing list