# HG changeset patch # User Yuya Nishihara # Date 1554814777 -32400 # Node ID 509a0477b3a6e9f1ea0fe32bfb028c256aada7fa # Parent 864f9f63d3ed371ab3d283911790d4f990926499 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. diff -r 864f9f63d3ed -r 509a0477b3a6 mercurial/cext/parsers.c --- 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; } diff -r 864f9f63d3ed -r 509a0477b3a6 mercurial/cext/revlog.c --- 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);