> 4 org.python.python 0x00000001000eb761 > va_build_value + 737 > 5 org.python.python 0x00000001000eb837 > _Py_BuildValue_SizeT + 167
Maybe we shouldn't trust the Python doc too much, which says 's#' of Py_BuildValue() takes an int. https://docs.python.org/2/c-api/arg.html#c.Py_BuildValue Can you test if this patch fixes the problem? ``` diff --git a/mercurial/cext/parsers.c b/mercurial/cext/parsers.c --- a/mercurial/cext/parsers.c +++ b/mercurial/cext/parsers.c @@ -184,7 +184,8 @@ static PyObject *parse_dirstate(PyObject 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 --git a/mercurial/cext/revlog.c b/mercurial/cext/revlog.c --- a/mercurial/cext/revlog.c +++ b/mercurial/cext/revlog.c @@ -366,7 +366,7 @@ static PyObject *index_get(indexObject * 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 @@ void revlog_module_init(PyObject *mod) 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); ``` _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel