diff options
Diffstat (limited to 'Include/internal')
-rw-r--r-- | Include/internal/pycore_code.h | 5 | ||||
-rw-r--r-- | Include/internal/pycore_dict.h | 3 |
2 files changed, 6 insertions, 2 deletions
diff --git a/Include/internal/pycore_code.h b/Include/internal/pycore_code.h index 312939e..3d8f9c2 100644 --- a/Include/internal/pycore_code.h +++ b/Include/internal/pycore_code.h @@ -23,7 +23,7 @@ typedef struct { typedef struct { uint32_t tp_version; uint32_t dk_version_or_hint; -} _PyLoadAttrCache; +} _PyAttrCache; typedef struct { uint32_t module_keys_version; @@ -43,7 +43,7 @@ typedef struct { typedef union { _PyEntryZero zero; _PyAdaptiveEntry adaptive; - _PyLoadAttrCache load_attr; + _PyAttrCache attr; _PyLoadGlobalCache load_global; } SpecializedCacheEntry; @@ -297,6 +297,7 @@ cache_backoff(_PyAdaptiveEntry *entry) { /* Specialization functions */ int _Py_Specialize_LoadAttr(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name, SpecializedCacheEntry *cache); +int _Py_Specialize_StoreAttr(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name, SpecializedCacheEntry *cache); int _Py_Specialize_LoadGlobal(PyObject *globals, PyObject *builtins, _Py_CODEUNIT *instr, PyObject *name, SpecializedCacheEntry *cache); int _Py_Specialize_BinarySubscr(PyObject *sub, PyObject *container, _Py_CODEUNIT *instr); diff --git a/Include/internal/pycore_dict.h b/Include/internal/pycore_dict.h index b2c64b2..2becc30 100644 --- a/Include/internal/pycore_dict.h +++ b/Include/internal/pycore_dict.h @@ -89,6 +89,9 @@ struct _dictkeysobject { #define DK_ENTRIES(dk) \ ((PyDictKeyEntry*)(&((int8_t*)((dk)->dk_indices))[DK_SIZE(dk) * DK_IXSIZE(dk)])) +extern uint64_t _pydict_global_version; + +#define DICT_NEXT_VERSION() (++_pydict_global_version) #ifdef __cplusplus } |