123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- #ifndef Py_INTERNAL_MODULEOBJECT_H
- #define Py_INTERNAL_MODULEOBJECT_H
- #ifdef __cplusplus
- extern "C" {
- #endif
- #ifndef Py_BUILD_CORE
- # error "this header requires Py_BUILD_CORE define"
- #endif
- typedef struct {
- PyObject_HEAD
- PyObject *md_dict;
- PyModuleDef *md_def;
- void *md_state;
- PyObject *md_weaklist;
- // for logging purposes after md_dict is cleared
- PyObject *md_name;
- } PyModuleObject;
- static inline PyModuleDef* _PyModule_GetDef(PyObject *mod) {
- assert(PyModule_Check(mod));
- return ((PyModuleObject *)mod)->md_def;
- }
- static inline void* _PyModule_GetState(PyObject* mod) {
- assert(PyModule_Check(mod));
- return ((PyModuleObject *)mod)->md_state;
- }
- static inline PyObject* _PyModule_GetDict(PyObject *mod) {
- assert(PyModule_Check(mod));
- PyObject *dict = ((PyModuleObject *)mod) -> md_dict;
- // _PyModule_GetDict(mod) must not be used after calling module_clear(mod)
- assert(dict != NULL);
- return dict;
- }
- PyObject* _Py_module_getattro_impl(PyModuleObject *m, PyObject *name, int suppress);
- PyObject* _Py_module_getattro(PyModuleObject *m, PyObject *name);
- #ifdef __cplusplus
- }
- #endif
- #endif /* !Py_INTERNAL_MODULEOBJECT_H */
|