]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-41428: Fix compiler warning in unionobject.c (GH-22416)
authorVictor Stinner <vstinner@python.org>
Sat, 26 Sep 2020 10:48:41 +0000 (12:48 +0200)
committerGitHub <noreply@github.com>
Sat, 26 Sep 2020 10:48:41 +0000 (12:48 +0200)
Use Py_ssize_t type rather than int, to store lengths in
unionobject.c. Fix the warning:

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

Objects/unionobject.c

index e055a55e91715ca7a6b0ee96bcd25a2b206c2f3f..8cfb2a664753f8df18f4e9b3079821243c6592c2 100644 (file)
@@ -202,8 +202,8 @@ flatten_args(PyObject* args)
         PyTypeObject* arg_type = Py_TYPE(arg);
         if (arg_type == &_Py_UnionType) {
             PyObject* nested_args = ((unionobject*)arg)->args;
-            int nested_arg_length = PyTuple_GET_SIZE(nested_args);
-            for (int j = 0; j < nested_arg_length; j++) {
+            Py_ssize_t nested_arg_length = PyTuple_GET_SIZE(nested_args);
+            for (Py_ssize_t j = 0; j < nested_arg_length; j++) {
                 PyObject* nested_arg = PyTuple_GET_ITEM(nested_args, j);
                 Py_INCREF(nested_arg);
                 PyTuple_SET_ITEM(flattened_args, pos, nested_arg);
@@ -231,7 +231,7 @@ dedup_and_flatten_args(PyObject* args)
         return NULL;
     }
     // Add unique elements to an array.
-    int added_items = 0;
+    Py_ssize_t added_items = 0;
     for (Py_ssize_t i = 0; i < arg_length; i++) {
         int is_duplicate = 0;
         PyObject* i_element = PyTuple_GET_ITEM(args, i);