]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Fix MSVC compiler warnings in dictobject.c (GH-26432)
authorMark Shannon <mark@hotpy.org>
Sat, 29 May 2021 00:40:12 +0000 (01:40 +0100)
committerGitHub <noreply@github.com>
Sat, 29 May 2021 00:40:12 +0000 (01:40 +0100)
Objects/dictobject.c
Objects/odictobject.c

index 65718c22fa2f5879edba24fb6b128eb2a0f51448..d97f9e2120d3fa1d04526f3b9e8aa4dffac468fc 100644 (file)
@@ -416,7 +416,7 @@ calculate_log2_keysize(Py_ssize_t minsize)
     minsize = (minsize | PyDict_MINSIZE) - 1;
     unsigned long msb;
     _BitScanReverse64(&msb, (uint64_t)minsize);
-    return msb + 1;
+    return (uint8_t)(msb + 1);
 #else
     uint8_t log2_size;
     for (log2_size = PyDict_LOG_MINSIZE;
@@ -600,7 +600,7 @@ new_keys_object(uint8_t log2_size)
     dk->dk_kind = DICT_KEYS_UNICODE;
     dk->dk_nentries = 0;
     dk->dk_version = 0;
-    memset(&dk->dk_indices[0], 0xff, es * (1<<log2_size));
+    memset(&dk->dk_indices[0], 0xff, es<<log2_size);
     memset(DK_ENTRIES(dk), 0, sizeof(PyDictKeyEntry) * usable);
     return dk;
 }
index 470322f866eea27199baf9ae284194ea5c0fa08b..6a33910d9a89de50c72727e77ff2437eb0d97c03 100644 (file)
@@ -545,6 +545,8 @@ _odict_get_index_raw(PyODictObject *od, PyObject *key, Py_hash_t hash)
     return ix;
 }
 
+#define ONE ((Py_ssize_t)1)
+
 /* Replace od->od_fast_nodes with a new table matching the size of dict's. */
 static int
 _odict_resize(PyODictObject *od)
@@ -553,7 +555,7 @@ _odict_resize(PyODictObject *od)
     _ODictNode **fast_nodes, *node;
 
     /* Initialize a new "fast nodes" table. */
-    size = 1 << (((PyDictObject *)od)->ma_keys->dk_log2_size);
+    size = ONE << (((PyDictObject *)od)->ma_keys->dk_log2_size);
     fast_nodes = PyMem_NEW(_ODictNode *, size);
     if (fast_nodes == NULL) {
         PyErr_NoMemory();
@@ -592,7 +594,7 @@ _odict_get_index(PyODictObject *od, PyObject *key, Py_hash_t hash)
 
     /* Ensure od_fast_nodes and dk_entries are in sync. */
     if (od->od_resize_sentinel != keys ||
-        od->od_fast_nodes_size != (1 << (keys->dk_log2_size))) {
+        od->od_fast_nodes_size != (ONE << (keys->dk_log2_size))) {
         int resize_res = _odict_resize(od);
         if (resize_res < 0)
             return -1;