diff options
author | Mark Shannon <mark@hotpy.org> | 2021-05-29 00:40:12 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-29 00:40:12 (GMT) |
commit | 21dd43c01d6b9cd50512c9ab6d83c97cde3bf115 (patch) | |
tree | 0dc6290bda52eda3f37dd4468ee1ade15c67ad2f | |
parent | 8b4312b909abff3100c1f18fb3efa5c25617fee3 (diff) | |
download | cpython-21dd43c01d6b9cd50512c9ab6d83c97cde3bf115.zip cpython-21dd43c01d6b9cd50512c9ab6d83c97cde3bf115.tar.gz cpython-21dd43c01d6b9cd50512c9ab6d83c97cde3bf115.tar.bz2 |
Fix MSVC compiler warnings in dictobject.c (GH-26432)
-rw-r--r-- | Objects/dictobject.c | 4 | ||||
-rw-r--r-- | Objects/odictobject.c | 6 |
2 files changed, 6 insertions, 4 deletions
diff --git a/Objects/dictobject.c b/Objects/dictobject.c index 65718c2..d97f9e21 100644 --- a/Objects/dictobject.c +++ b/Objects/dictobject.c @@ -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; } diff --git a/Objects/odictobject.c b/Objects/odictobject.c index 470322f..6a33910 100644 --- a/Objects/odictobject.c +++ b/Objects/odictobject.c @@ -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; |