Skip to content

Commit 63c3028

Browse files
committed
directly create a generic sequence iterator from PySeqIter_New
1 parent d69d336 commit 63c3028

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

graalpython/com.oracle.graal.python.cext/src/iterobject.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,5 +45,5 @@ PyObject* PySeqIter_New(PyObject *seq) {
4545
PyErr_BadInternalCall();
4646
return NULL;
4747
}
48-
return UPCALL_O(PY_BUILTIN, "iter", native_to_java(seq));
48+
return UPCALL_CEXT_O("PyTruffle_SeqIter_New", native_to_java(seq));
4949
}

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/TruffleCextBuiltins.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@
8585
import com.oracle.graal.python.builtins.objects.function.PKeyword;
8686
import com.oracle.graal.python.builtins.objects.function.PythonCallable;
8787
import com.oracle.graal.python.builtins.objects.ints.PInt;
88+
import com.oracle.graal.python.builtins.objects.iterator.PSequenceIterator;
8889
import com.oracle.graal.python.builtins.objects.object.PythonObject;
8990
import com.oracle.graal.python.builtins.objects.slice.PSlice;
9091
import com.oracle.graal.python.builtins.objects.slice.PSlice.SliceInfo;
@@ -1378,6 +1379,15 @@ Object call(@SuppressWarnings("unused") PNone get, PythonCallable set, String na
13781379
}
13791380
}
13801381

1382+
@Builtin(name = "PyTruffle_SeqIter_New", fixedNumOfArguments = 1)
1383+
@GenerateNodeFactory
1384+
public abstract static class SeqIterNewNode extends PythonBuiltinNode {
1385+
@Specialization
1386+
PSequenceIterator call(Object seq) {
1387+
return factory().createSequenceIterator(seq);
1388+
}
1389+
}
1390+
13811391
@Builtin(name = "PyTruffle_BuiltinMethod", fixedNumOfArguments = 2)
13821392
@GenerateNodeFactory
13831393
public abstract static class BuiltinMethodNode extends PythonBuiltinNode {

0 commit comments

Comments
 (0)