From: Victor Stinner Date: Thu, 22 Nov 2018 12:21:43 +0000 (+0100) Subject: bpo-9566: Fix compiler warnings in pyexpat.c (GH-10654) X-Git-Tag: v3.8.0a1~455 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=28f468cb19e3097079b7ce7850e6048de99022fa;p=thirdparty%2FPython%2Fcpython.git bpo-9566: Fix compiler warnings in pyexpat.c (GH-10654) Explicit cast a pointer difference (intptr_t) to int to fix two warnings on 64-bit Windows: Modules\pyexpat.c(1181): warning C4244: 'initializing': conversion from '__int64' to 'int', possible loss of data Modules\pyexpat.c(1192): warning C4244: 'initializing': conversion from '__int64' to 'int', possible loss of data --- diff --git a/Modules/pyexpat.c b/Modules/pyexpat.c index 10d5aedf1cdb..9384081f9ffc 100644 --- a/Modules/pyexpat.c +++ b/Modules/pyexpat.c @@ -1178,7 +1178,8 @@ xmlparse_dealloc(xmlparseobject *self) static PyObject * xmlparse_handler_getter(xmlparseobject *self, struct HandlerInfo *hi) { - int handlernum = hi - handler_info; + assert((hi - handler_info) < (Py_ssize_t)Py_ARRAY_LENGTH(handler_info)); + int handlernum = (int)(hi - handler_info); PyObject *result = self->handlers[handlernum]; if (result == NULL) result = Py_None; @@ -1189,7 +1190,8 @@ xmlparse_handler_getter(xmlparseobject *self, struct HandlerInfo *hi) static int xmlparse_handler_setter(xmlparseobject *self, PyObject *v, struct HandlerInfo *hi) { - int handlernum = hi - handler_info; + assert((hi - handler_info) < (Py_ssize_t)Py_ARRAY_LENGTH(handler_info)); + int handlernum = (int)(hi - handler_info); if (v == NULL) { PyErr_SetString(PyExc_RuntimeError, "Cannot delete attribute"); return -1;