blueloveTH пре 13 часа
родитељ
комит
fca112c086
1 измењених фајлова са 9 додато и 6 уклоњено
  1. 9 6
      src/bindings/py_range.c

+ 9 - 6
src/bindings/py_range.c

@@ -42,9 +42,17 @@ static bool range__new__(int argc, py_Ref argv) {
     return true;
 }
 
+typedef struct RangeIterator {
+    Range range;
+    py_i64 current;
+} RangeIterator;
+
 static bool range__iter__(int argc, py_Ref argv) {
     PY_CHECK_ARGC(1);
-    return py_tpcall(tp_range_iterator, 1, argv);
+    RangeIterator* ud = py_newobject(py_retval(), tp_range_iterator, 0, sizeof(RangeIterator));
+    ud->range = *(Range*)py_touserdata(argv);
+    ud->current = ud->range.start;
+    return true;
 }
 
 py_Type pk_range__register() {
@@ -55,11 +63,6 @@ py_Type pk_range__register() {
     return type;
 }
 
-typedef struct RangeIterator {
-    Range range;
-    py_i64 current;
-} RangeIterator;
-
 static bool range_iterator__new__(int argc, py_Ref argv) {
     PY_CHECK_ARGC(2);
     PY_CHECK_ARG_TYPE(1, tp_range);