[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [27679] trunk/blender/source/blender/ python/intern/bpy_rna.c: getting an item from a collection wasnt being checked correctly.
Brecht Van Lommel
brecht at blender.org
Tue Mar 23 15:48:34 CET 2010
Revision: 27679
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27679
Author: blendix
Date: 2010-03-23 15:48:32 +0100 (Tue, 23 Mar 2010)
Log Message:
-----------
getting an item from a collection wasnt being checked correctly.
(commit 27665 by Campbell from render25 branch)
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-03-23 14:47:40 UTC (rev 27678)
+++ trunk/blender/source/blender/python/intern/bpy_rna.c 2010-03-23 14:48:32 UTC (rev 27679)
@@ -1099,12 +1099,17 @@
static PyObject *pyrna_prop_collection_subscript_int(BPy_PropertyRNA *self, Py_ssize_t keynum)
{
PointerRNA newptr;
+ int len= RNA_property_collection_length(&self->ptr, self->prop);
- if(keynum < 0) keynum += RNA_property_collection_length(&self->ptr, self->prop);
+ if(keynum < 0) keynum += len;
- if(RNA_property_collection_lookup_int(&self->ptr, self->prop, keynum, &newptr))
- return pyrna_struct_CreatePyObject(&newptr);
-
+ if(keynum >= 0 && keynum < len) {
+ if(RNA_property_collection_lookup_int(&self->ptr, self->prop, keynum, &newptr)) {
+ return pyrna_struct_CreatePyObject(&newptr);
+ }
+ PyErr_Format(PyExc_IndexError, "bpy_prop_collection[index]: index %d could not be found", keynum);
+ return NULL;
+ }
PyErr_Format(PyExc_IndexError, "bpy_prop_collection[index]: index %d out of range", keynum);
return NULL;
}
More information about the Bf-blender-cvs
mailing list