Skip to content

Commit 788106d

Browse files
committed
Fix: Avoid invalid cast.
1 parent b1755f0 commit 788106d

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

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

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ long PyLong_AsLongAndOverflow(PyObject *obj, int *overflow) {
5252
return -1;
5353
}
5454
long result = truffle_invoke_l(PY_TRUFFLE_CEXT, "PyLong_AsPrimitive", to_java(obj), true, sizeof(long), truffle_read_string("long"));
55-
*overflow = result == -1L && PyErr_Occurred();
55+
*overflow = result == -1L && PyErr_Occurred() != NULL;
5656
return result;
5757
}
5858

@@ -93,8 +93,13 @@ PyObject * PyLong_FromVoidPtr(void *p) {
9393
void * PyLong_AsVoidPtr(PyObject *obj){
9494
return (void *)PyLong_AsSsize_t(obj);
9595
}
96+
9697
PyObject * PyLong_FromLong(long n) {
97-
return PyLong_FromUnsignedLongLong(n);
98+
void *result = polyglot_invoke(PY_TRUFFLE_CEXT, "PyLong_FromLongLong", n, true);
99+
if (result == ERROR_MARKER) {
100+
return NULL;
101+
}
102+
return to_sulong(result);
98103
}
99104

100105
PyObject * PyLong_FromLongLong(long long n) {

0 commit comments

Comments
 (0)