--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cgen/templates/inlined/PyRangeIter_Type Fri May 11 16:21:51 2012 -0700 @@ -0,0 +1,23 @@ + { + typedef struct { + PyObject_HEAD + long index; + long start; + long step; + long len; + } rangeiterobject; + + if (((rangeiterobject*)v)->index < ((rangeiterobject*)v)->len) { + /* cast to unsigned to avoid possible signed overflow + in intermediate calculations. */ + x= PyLong_FromLong((long)(((rangeiterobject*)v)->start + + (unsigned long)(((rangeiterobject*)v)->index++) + * ((rangeiterobject*)v)->step)); + PUSH(x); + DISPATCH(); + } + else { + x = NULL; + goto FOR_ITER_CONTINUE; + } // if + }