2019-06-03 09:30:58 -03:00
|
|
|
#ifndef Py_INTERNAL_CODE_H
|
|
|
|
#define Py_INTERNAL_CODE_H
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
PyObject *ptr; /* Cached pointer (borrowed reference) */
|
|
|
|
uint64_t globals_ver; /* ma_version of global dict */
|
|
|
|
uint64_t builtins_ver; /* ma_version of builtin dict */
|
|
|
|
} _PyOpcache_LoadGlobal;
|
|
|
|
|
2020-10-20 02:22:44 -03:00
|
|
|
typedef struct {
|
|
|
|
PyTypeObject *type;
|
|
|
|
Py_ssize_t hint;
|
|
|
|
unsigned int tp_version_tag;
|
|
|
|
} _PyOpCodeOpt_LoadAttr;
|
|
|
|
|
2019-06-03 09:30:58 -03:00
|
|
|
struct _PyOpcache {
|
|
|
|
union {
|
|
|
|
_PyOpcache_LoadGlobal lg;
|
2020-10-20 02:22:44 -03:00
|
|
|
_PyOpCodeOpt_LoadAttr la;
|
2019-06-03 09:30:58 -03:00
|
|
|
} u;
|
|
|
|
char optimized;
|
|
|
|
};
|
|
|
|
|
|
|
|
/* Private API */
|
|
|
|
int _PyCode_InitOpcache(PyCodeObject *co);
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
#endif /* !Py_INTERNAL_CODE_H */
|