cext: cast s# arguments of Py_BuildValue() to Py_ssize_t
The doc doesn't state that "s#" of Py_BuildValue() is controlled by
PY_SSIZE_T_CLEAN (unlike the one for PyArg_ParseTuple()), but actually
it's switched to Py_ssize_t.
https://docs.python.org/2/c-api/arg.html#c.Py_BuildValue
https://github.com/python/cpython/blob/2.7/Python/modsupport.c#L432
Follow up for
b01bbb8ff1f2 and
896b19d12c08.
--- a/mercurial/cext/parsers.c Mon Apr 08 10:52:04 2019 -0400
+++ b/mercurial/cext/parsers.c Tue Apr 09 21:59:37 2019 +0900
@@ -184,7 +184,8 @@
goto quit;
}
- parents = Py_BuildValue(PY23("s#s#", "y#y#"), str, 20, str + 20, 20);
+ parents = Py_BuildValue(PY23("s#s#", "y#y#"), str, (Py_ssize_t)20,
+ str + 20, (Py_ssize_t)20);
if (!parents) {
goto quit;
}
--- a/mercurial/cext/revlog.c Mon Apr 08 10:52:04 2019 -0400
+++ b/mercurial/cext/revlog.c Tue Apr 09 21:59:37 2019 +0900
@@ -366,7 +366,7 @@
entry = Py_BuildValue(tuple_format, offset_flags, comp_len, uncomp_len,
base_rev, link_rev, parent_1, parent_2, c_node_id,
- 20);
+ (Py_ssize_t)20);
if (entry) {
PyObject_GC_UnTrack(entry);
@@ -3017,8 +3017,9 @@
PyModule_AddObject(mod, "nodetree", (PyObject *)&nodetreeType);
if (!nullentry) {
- nullentry = Py_BuildValue(PY23("iiiiiiis#", "iiiiiiiy#"), 0, 0,
- 0, -1, -1, -1, -1, nullid, 20);
+ nullentry =
+ Py_BuildValue(PY23("iiiiiiis#", "iiiiiiiy#"), 0, 0, 0, -1,
+ -1, -1, -1, nullid, (Py_ssize_t)20);
}
if (nullentry)
PyObject_GC_UnTrack(nullentry);