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;
 }


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

Reply via email to