Skip to content

Commit 6d8b43b

Browse files
committed
Implement PyLong_FromUnicodeObject
1 parent c94fc35 commit 6d8b43b

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextLongBuiltins.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,9 @@
6161

6262
import com.oracle.graal.python.builtins.PythonBuiltinClassType;
6363
import com.oracle.graal.python.builtins.modules.BuiltinConstructors;
64+
import com.oracle.graal.python.builtins.modules.BuiltinConstructors.IntNode;
6465
import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApi5BuiltinNode;
66+
import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBinaryBuiltinNode;
6567
import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiBuiltin;
6668
import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiNullaryBuiltinNode;
6769
import com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltins.CApiTernaryBuiltinNode;
@@ -101,6 +103,7 @@
101103
import com.oracle.truffle.api.nodes.UnexpectedResultException;
102104
import com.oracle.truffle.api.profiles.BranchProfile;
103105
import com.oracle.truffle.api.profiles.InlinedConditionProfile;
106+
import com.oracle.truffle.api.strings.TruffleString;
104107

105108
public final class PythonCextLongBuiltins {
106109

@@ -458,4 +461,13 @@ static Object get(PInt value, Object bytes, long n, int littleEndian, int isSign
458461
return 0;
459462
}
460463
}
464+
465+
@CApiBuiltin(ret = PyObjectTransfer, args = {PyObjectAsTruffleString, Int}, call = Direct)
466+
abstract static class PyLong_FromUnicodeObject extends CApiBinaryBuiltinNode {
467+
@Specialization
468+
static Object convert(TruffleString s, int base,
469+
@Cached IntNode intNode) {
470+
return intNode.executeWith(null, s, base);
471+
}
472+
}
461473
}

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/capi/CApiFunction.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1169,7 +1169,6 @@ public final class CApiFunction {
11691169
@CApiBuiltin(name = "PyLineTable_InitAddressRange", ret = Void, args = {ConstCharPtr, Py_ssize_t, Int, PyCodeAddressRange}, call = NotImplemented)
11701170
@CApiBuiltin(name = "PyLineTable_NextAddressRange", ret = Int, args = {PyCodeAddressRange}, call = NotImplemented)
11711171
@CApiBuiltin(name = "PyLineTable_PreviousAddressRange", ret = Int, args = {PyCodeAddressRange}, call = NotImplemented)
1172-
@CApiBuiltin(name = "PyLong_FromUnicodeObject", ret = PyObject, args = {PyObject, Int}, call = NotImplemented)
11731172
@CApiBuiltin(name = "PyLong_GetInfo", ret = PyObject, args = {}, call = NotImplemented)
11741173
@CApiBuiltin(name = "PyMapping_HasKey", ret = Int, args = {PyObject, PyObject}, call = NotImplemented)
11751174
@CApiBuiltin(name = "PyMapping_HasKeyString", ret = Int, args = {PyObject, ConstCharPtrAsTruffleString}, call = NotImplemented)

0 commit comments

Comments
 (0)