# HG changeset patch # User Yuya Nishihara # Date 2017-07-31 13:58:06 # Node ID a22339d389d456f2ee4573ffaa668860335700f6 # Parent 0f4ac3b6dee4d58d9b46f0e6bb95a9d8b478d88d cext: modernize charencode.c to use Py_ssize_t diff --git a/mercurial/cext/charencode.c b/mercurial/cext/charencode.c --- a/mercurial/cext/charencode.c +++ b/mercurial/cext/charencode.c @@ -7,6 +7,7 @@ the GNU General Public License, incorporated herein by reference. */ +#define PY_SSIZE_T_CLEAN #include #include "charencode.h" @@ -57,11 +58,11 @@ static const char uppertable[128] = { /* * Turn a hex-encoded string into binary. */ -PyObject *unhexlify(const char *str, int len) +PyObject *unhexlify(const char *str, Py_ssize_t len) { PyObject *ret; char *d; - int i; + Py_ssize_t i; ret = PyBytes_FromStringAndSize(NULL, len / 2); diff --git a/mercurial/cext/charencode.h b/mercurial/cext/charencode.h --- a/mercurial/cext/charencode.h +++ b/mercurial/cext/charencode.h @@ -18,7 +18,7 @@ enum normcase_spec { NORMCASE_OTHER = 0 }; -PyObject *unhexlify(const char *str, int len); +PyObject *unhexlify(const char *str, Py_ssize_t len); PyObject *asciilower(PyObject *self, PyObject *args); PyObject *asciiupper(PyObject *self, PyObject *args); PyObject *make_file_foldmap(PyObject *self, PyObject *args); diff --git a/mercurial/cext/parsers.c b/mercurial/cext/parsers.c --- a/mercurial/cext/parsers.c +++ b/mercurial/cext/parsers.c @@ -85,7 +85,7 @@ static PyObject *parse_manifest(PyObject nlen = newline - zero - 1; - node = unhexlify(zero + 1, nlen > 40 ? 40 : (int)nlen); + node = unhexlify(zero + 1, nlen > 40 ? 40 : (Py_ssize_t)nlen); if (!node) goto bail;