1 | #ifndef Py_INTERNAL_CODE_H |
2 | #define Py_INTERNAL_CODE_H |
3 | #ifdef __cplusplus |
4 | extern "C" { |
5 | #endif |
6 | |
7 | typedef struct { |
8 | PyObject *ptr; /* Cached pointer (borrowed reference) */ |
9 | uint64_t globals_ver; /* ma_version of global dict */ |
10 | uint64_t builtins_ver; /* ma_version of builtin dict */ |
11 | } _PyOpcache_LoadGlobal; |
12 | |
13 | typedef struct { |
14 | PyTypeObject *type; |
15 | Py_ssize_t hint; |
16 | unsigned int tp_version_tag; |
17 | } _PyOpCodeOpt_LoadAttr; |
18 | |
19 | struct _PyOpcache { |
20 | union { |
21 | _PyOpcache_LoadGlobal lg; |
22 | _PyOpCodeOpt_LoadAttr la; |
23 | } u; |
24 | char optimized; |
25 | }; |
26 | |
27 | /* Private API */ |
28 | int _PyCode_InitOpcache(PyCodeObject *co); |
29 | |
30 | |
31 | #ifdef __cplusplus |
32 | } |
33 | #endif |
34 | #endif /* !Py_INTERNAL_CODE_H */ |
35 | |