mirror of
https://github.com/python/cpython.git
synced 2026-01-18 13:19:59 +00:00
gh-142908: Don't use DK_IS_UNICODE in interpreter (gh-142909)
`DK_IS_UNICODE()` includes split keys and we don't want to specialize on those accesses..
This commit is contained in:
parent
49c3b0a67a
commit
8cf5c4d89a
4 changed files with 17 additions and 17 deletions
|
|
@ -1844,7 +1844,7 @@ dummy_func(
|
|||
DEOPT_IF(!PyDict_CheckExact(dict));
|
||||
PyDictKeysObject *keys = FT_ATOMIC_LOAD_PTR_ACQUIRE(dict->ma_keys);
|
||||
DEOPT_IF(FT_ATOMIC_LOAD_UINT32_RELAXED(keys->dk_version) != version);
|
||||
assert(DK_IS_UNICODE(keys));
|
||||
assert(keys->dk_kind == DICT_KEYS_UNICODE);
|
||||
}
|
||||
|
||||
op(_LOAD_GLOBAL_MODULE, (version/1, unused/1, index/1 -- res))
|
||||
|
|
@ -1853,7 +1853,7 @@ dummy_func(
|
|||
DEOPT_IF(!PyDict_CheckExact(dict));
|
||||
PyDictKeysObject *keys = FT_ATOMIC_LOAD_PTR_ACQUIRE(dict->ma_keys);
|
||||
DEOPT_IF(FT_ATOMIC_LOAD_UINT32_RELAXED(keys->dk_version) != version);
|
||||
assert(DK_IS_UNICODE(keys));
|
||||
assert(keys->dk_kind == DICT_KEYS_UNICODE);
|
||||
PyDictUnicodeEntry *entries = DK_UNICODE_ENTRIES(keys);
|
||||
assert(index < DK_SIZE(keys));
|
||||
PyObject *res_o = FT_ATOMIC_LOAD_PTR_RELAXED(entries[index].me_value);
|
||||
|
|
@ -1873,7 +1873,7 @@ dummy_func(
|
|||
DEOPT_IF(!PyDict_CheckExact(dict));
|
||||
PyDictKeysObject *keys = FT_ATOMIC_LOAD_PTR_ACQUIRE(dict->ma_keys);
|
||||
DEOPT_IF(FT_ATOMIC_LOAD_UINT32_RELAXED(keys->dk_version) != version);
|
||||
assert(DK_IS_UNICODE(keys));
|
||||
assert(keys->dk_kind == DICT_KEYS_UNICODE);
|
||||
PyDictUnicodeEntry *entries = DK_UNICODE_ENTRIES(keys);
|
||||
PyObject *res_o = FT_ATOMIC_LOAD_PTR_RELAXED(entries[index].me_value);
|
||||
DEOPT_IF(res_o == NULL);
|
||||
|
|
@ -2668,7 +2668,7 @@ dummy_func(
|
|||
assert(PyDict_CheckExact((PyObject *)dict));
|
||||
PyObject *name = GETITEM(FRAME_CO_NAMES, oparg);
|
||||
if (hint >= (size_t)dict->ma_keys->dk_nentries ||
|
||||
!DK_IS_UNICODE(dict->ma_keys)) {
|
||||
dict->ma_keys->dk_kind != DICT_KEYS_UNICODE) {
|
||||
UNLOCK_OBJECT(dict);
|
||||
DEOPT_IF(true);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue