quark created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers.
REVISION SUMMARY Julien Cristau reported and provided the fix [1]. I added an assertion. Note Python documentation (2.7 to 3.5) says "L" in `Py_BuildValue` might be unsupported on some platforms: L (int) [PY_LONG_LONG] Convert a Python integer to a C long long. This format is only available on platforms that support long long (or _int64 on Windows). But it is required to build Python 2.7 itself [2]. So using it won't affect supported platforms. [1]: https://bz.mercurial-scm.org/show_bug.cgi?id=5885#c3 [2]: https://bugs.python.org/issue27961 REPOSITORY rHG Mercurial REVISION DETAIL https://phab.mercurial-scm.org/D3554 AFFECTED FILES mercurial/cext/bdiff.c CHANGE DETAILS diff --git a/mercurial/cext/bdiff.c b/mercurial/cext/bdiff.c --- a/mercurial/cext/bdiff.c +++ b/mercurial/cext/bdiff.c @@ -261,7 +261,8 @@ void *priv) { PyObject *rl = (PyObject *)priv; - PyObject *m = Py_BuildValue("llll", a1, a2, b1, b2); + Py_BUILD_ASSERT(sizeof(a1) == sizeof(PY_LONG_LONG)); + PyObject *m = Py_BuildValue("LLLL", a1, a2, b1, b2); if (!m) return -1; if (PyList_Append(rl, m) != 0) { To: quark, #hg-reviewers Cc: mercurial-devel _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel