[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [25740] trunk/blender/source/blender/ python/intern/bpy_rna.c: fix for bpyob.foreach_set(), when the list is empty

Campbell Barton ideasman42 at gmail.com
Tue Jan 5 14:55:51 CET 2010


Revision: 25740
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=25740
Author:   campbellbarton
Date:     2010-01-05 14:55:51 +0100 (Tue, 05 Jan 2010)

Log Message:
-----------
fix for bpyob.foreach_set(), when the list is empty

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	2010-01-05 12:14:18 UTC (rev 25739)
+++ trunk/blender/source/blender/python/intern/bpy_rna.c	2010-01-05 13:55:51 UTC (rev 25740)
@@ -2241,6 +2241,7 @@
 	*attr_tot= 0;
 	*attr_signed= FALSE;
 
+	/* note: this is fail with zero length lists, so dont let this get caled in that case */
 	RNA_PROP_BEGIN(&self->ptr, itemptr, self->prop) {
 		prop = RNA_struct_find_property(&itemptr, attr);
 		*raw_type= RNA_property_raw_type(prop);
@@ -2297,7 +2298,9 @@
 #endif
 	}
 
-	if (*size == 0) {
+	/* check 'attr_tot' otherwise we dont know if any values were set
+	 * this isnt ideal because it means running on an empty list may fail silently when its not compatible. */
+	if (*size == 0 && *attr_tot != 0) {
 		PyErr_SetString( PyExc_AttributeError, "attribute does not support foreach method" );
 		return -1;
 	}





More information about the Bf-blender-cvs mailing list