Skip to content

Commit 13f0a55

Browse files
committed
Fix: call int constructor for 'PyLong_AsPrimitive'.
1 parent f182eb5 commit 13f0a55

File tree

2 files changed

+3
-3
lines changed

2 files changed

+3
-3
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -404,7 +404,7 @@ long doLongNativeWrapper(LongNativeWrapper object) {
404404
return object.getValue();
405405
}
406406

407-
@Specialization(guards = "object.isNative()")
407+
@Specialization(guards = {"isPrimitiveNativeWrapper(object)", "object.isNative()"})
408408
Object doPrimitiveNativeWrapper(PrimitiveNativeWrapper object) {
409409
return getMaterializeNode().execute(object);
410410
}
@@ -473,7 +473,7 @@ Object run(Object obj) {
473473
}
474474

475475
protected static boolean isPrimitiveNativeWrapper(PythonNativeWrapper object) {
476-
return object instanceof PrimitiveNativeWrapper;
476+
return object instanceof PrimitiveNativeWrapper && !(object instanceof BoolNativeWrapper);
477477
}
478478

479479
protected boolean isForeignObject(TruffleObject obj, GetLazyClassNode getClassNode, IsBuiltinClassProfile isForeignClassProfile) {

graalpython/lib-graalpython/python_cext.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,7 @@ def PyList_Size(listObj):
316316

317317
@may_raise(-1)
318318
def PyLong_AsPrimitive(n, signed, size):
319-
return TrufflePInt_AsPrimitive(n, signed, size)
319+
return TrufflePInt_AsPrimitive(int(n), signed, size)
320320

321321

322322
def _PyLong_Sign(n):

0 commit comments

Comments
 (0)