cext: modernize charencode.c to use Py_ssize_t
authorYuya Nishihara <yuya@tcha.org>
Mon, 31 Jul 2017 22:58:06 +0900
changeset 33759 a22339d389d4
parent 33758 0f4ac3b6dee4
child 33760 cd2aca0808f8
cext: modernize charencode.c to use Py_ssize_t
mercurial/cext/charencode.c
mercurial/cext/charencode.h
mercurial/cext/parsers.c
--- a/mercurial/cext/charencode.c	Sun May 21 14:23:22 2017 +0900
+++ b/mercurial/cext/charencode.c	Mon Jul 31 22:58:06 2017 +0900
@@ -7,6 +7,7 @@
  the GNU General Public License, incorporated herein by reference.
 */
 
+#define PY_SSIZE_T_CLEAN
 #include <Python.h>
 
 #include "charencode.h"
@@ -57,11 +58,11 @@
 /*
  * 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);
 
--- a/mercurial/cext/charencode.h	Sun May 21 14:23:22 2017 +0900
+++ b/mercurial/cext/charencode.h	Mon Jul 31 22:58:06 2017 +0900
@@ -18,7 +18,7 @@
 	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);
--- a/mercurial/cext/parsers.c	Sun May 21 14:23:22 2017 +0900
+++ b/mercurial/cext/parsers.c	Mon Jul 31 22:58:06 2017 +0900
@@ -85,7 +85,7 @@
 
 		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;