From a909460a09cca79bd051c45b02e650862a57dbd9 Mon Sep 17 00:00:00 2001 From: Michael Felt Date: Fri, 11 Jan 2019 19:17:03 +0100 Subject: bpo-34569: Fix subinterpreter 32-bit ABI, pystate.c/_new_long_object() (gh-9127) This fixes ShareableTypeTests.test_int() in Lib/test/test__xxsubinterpreters.py. --- Misc/NEWS.d/next/Tests/2018-09-09-14-36-59.bpo-34569.okj1Xh.rst | 2 ++ Python/pystate.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 Misc/NEWS.d/next/Tests/2018-09-09-14-36-59.bpo-34569.okj1Xh.rst diff --git a/Misc/NEWS.d/next/Tests/2018-09-09-14-36-59.bpo-34569.okj1Xh.rst b/Misc/NEWS.d/next/Tests/2018-09-09-14-36-59.bpo-34569.okj1Xh.rst new file mode 100644 index 0000000..bd433ad --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2018-09-09-14-36-59.bpo-34569.okj1Xh.rst @@ -0,0 +1,2 @@ +The experimental PEP 554 data channels now correctly pass negative PyLong +objects between subinterpreters on 32-bit systems. Patch by Michael Felt. diff --git a/Python/pystate.c b/Python/pystate.c index 98882eb..4dc3b81 100644 --- a/Python/pystate.c +++ b/Python/pystate.c @@ -1467,7 +1467,7 @@ _str_shared(PyObject *obj, _PyCrossInterpreterData *data) static PyObject * _new_long_object(_PyCrossInterpreterData *data) { - return PyLong_FromLongLong((int64_t)(data->data)); + return PyLong_FromLongLong((intptr_t)(data->data)); } static int -- cgit v0.12