[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [27665] branches/render25/source/blender/ python/intern/bpy_rna.c: getting an item from a collection wasnt being checked correctly.
Campbell Barton
ideasman42 at gmail.com
Mon Mar 22 18:24:17 CET 2010
Revision: 27665
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27665
Author: campbellbarton
Date: 2010-03-22 18:24:17 +0100 (Mon, 22 Mar 2010)
Log Message:
-----------
getting an item from a collection wasnt being checked correctly.
Modified Paths:
--------------
branches/render25/source/blender/python/intern/bpy_rna.c
Modified: branches/render25/source/blender/python/intern/bpy_rna.c
===================================================================
--- branches/render25/source/blender/python/intern/bpy_rna.c 2010-03-22 17:17:36 UTC (rev 27664)
+++ branches/render25/source/blender/python/intern/bpy_rna.c 2010-03-22 17:24:17 UTC (rev 27665)
@@ -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