bpo-41428: Fix compiler warnings in unionobject.c (GH-22388)

Use Py_ssize_t type rather than int, to store lengths in
unionobject.c. Fix warnings:

Objects\unionobject.c(189,71): warning C4244: '+=':
conversion from 'Py_ssize_t' to 'int', possible loss of data

Objects\unionobject.c(182,1): warning C4244: 'initializing':
conversion from 'Py_ssize_t' to 'int', possible loss of data

Objects\unionobject.c(205,1): warning C4244: 'initializing':
conversion from 'Py_ssize_t' to 'int', possible loss of data

Objects\unionobject.c(437,1): warning C4244: 'initializing':
conversion from 'Py_ssize_t' to 'int', possible loss of data
This commit is contained in:
Victor Stinner 2020-09-23 23:25:54 +02:00 committed by GitHub
parent bbeb223e9a
commit d67de0a30d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -179,8 +179,8 @@ union_richcompare(PyObject *a, PyObject *b, int op)
static PyObject*
flatten_args(PyObject* args)
{
int arg_length = PyTuple_GET_SIZE(args);
int total_args = 0;
Py_ssize_t arg_length = PyTuple_GET_SIZE(args);
Py_ssize_t total_args = 0;
// Get number of total args once it's flattened.
for (Py_ssize_t i = 0; i < arg_length; i++) {
PyObject *arg = PyTuple_GET_ITEM(args, i);
@ -434,7 +434,7 @@ _Py_Union(PyObject *args)
unionobject* result = NULL;
// Check arguments are unionable.
int nargs = PyTuple_GET_SIZE(args);
Py_ssize_t nargs = PyTuple_GET_SIZE(args);
for (Py_ssize_t iarg = 0; iarg < nargs; iarg++) {
PyObject *arg = PyTuple_GET_ITEM(args, iarg);
if (arg == NULL) {