Issue #10182: The re module doesn't truncate indices to 32 bits anymore.
Patch by Serhiy Storchaka.
diff --git a/Modules/_sre.c b/Modules/_sre.c
index ab4f269..baf5f6a 100644
--- a/Modules/_sre.c
+++ b/Modules/_sre.c
@@ -1636,7 +1636,7 @@
static PyObject *
sre_codesize(PyObject* self, PyObject *unused)
{
- return Py_BuildValue("l", sizeof(SRE_CODE));
+ return PyLong_FromSize_t(sizeof(SRE_CODE));
}
static PyObject *
@@ -2448,7 +2448,7 @@
return NULL;
if (subn)
- return Py_BuildValue("Ni", item, n);
+ return Py_BuildValue("Nn", item, n);
return item;
@@ -3389,7 +3389,7 @@
}
/* mark is -1 if group is undefined */
- return Py_BuildValue("i", self->mark[index*2]);
+ return PyLong_FromSsize_t(self->mark[index*2]);
}
static PyObject*
@@ -3412,7 +3412,7 @@
}
/* mark is -1 if group is undefined */
- return Py_BuildValue("i", self->mark[index*2+1]);
+ return PyLong_FromSsize_t(self->mark[index*2+1]);
}
LOCAL(PyObject*)
@@ -3562,7 +3562,7 @@
match_lastindex_get(MatchObject *self)
{
if (self->lastindex >= 0)
- return Py_BuildValue("i", self->lastindex);
+ return PyLong_FromSsize_t(self->lastindex);
Py_INCREF(Py_None);
return Py_None;
}