mirror of
https://github.com/johndoe6345789/typthon.git
synced 2026-04-24 21:55:26 +00:00
Massive automated renaming of all Py_/PyObject/etc. prefixes to Ty_/TyObject/etc. This includes: - All public API types (TyObject, TyTypeObject, etc.) - All public API functions (Ty_Initialize, Ty_BuildValue, etc.) - All internal API (_Ty_ prefixes) - Reference counting macros (Ty_INCREF, Ty_DECREF, etc.) - Type flags (Ty_TPFLAGS_*) - Debug flags (Ty_DEBUG, Ty_TRACE_REFS, etc.) - All object type APIs (TyList_, TyDict_, TyUnicode_, etc.) This changes over 60,000 occurrences across 1000+ files. Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
63 lines
1.7 KiB
C
63 lines
1.7 KiB
C
#ifndef Ty_INTERNAL_MODULEOBJECT_H
|
|
#define Ty_INTERNAL_MODULEOBJECT_H
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#ifndef Ty_BUILD_CORE
|
|
# error "this header requires Ty_BUILD_CORE define"
|
|
#endif
|
|
|
|
extern void _TyModule_Clear(TyObject *);
|
|
extern void _TyModule_ClearDict(TyObject *);
|
|
extern int _PyModuleSpec_IsInitializing(TyObject *);
|
|
extern int _PyModuleSpec_GetFileOrigin(TyObject *, TyObject **);
|
|
extern int _TyModule_IsPossiblyShadowing(TyObject *);
|
|
|
|
extern int _TyModule_IsExtension(TyObject *obj);
|
|
|
|
typedef struct {
|
|
PyObject_HEAD
|
|
TyObject *md_dict;
|
|
TyModuleDef *md_def;
|
|
void *md_state;
|
|
TyObject *md_weaklist;
|
|
// for logging purposes after md_dict is cleared
|
|
TyObject *md_name;
|
|
#ifdef Ty_GIL_DISABLED
|
|
void *md_gil;
|
|
#endif
|
|
} PyModuleObject;
|
|
|
|
static inline TyModuleDef* _TyModule_GetDef(TyObject *mod) {
|
|
assert(TyModule_Check(mod));
|
|
return ((PyModuleObject *)mod)->md_def;
|
|
}
|
|
|
|
static inline void* _TyModule_GetState(TyObject* mod) {
|
|
assert(TyModule_Check(mod));
|
|
return ((PyModuleObject *)mod)->md_state;
|
|
}
|
|
|
|
static inline TyObject* _TyModule_GetDict(TyObject *mod) {
|
|
assert(TyModule_Check(mod));
|
|
TyObject *dict = ((PyModuleObject *)mod) -> md_dict;
|
|
// _TyModule_GetDict(mod) must not be used after calling module_clear(mod)
|
|
assert(dict != NULL);
|
|
return dict; // borrowed reference
|
|
}
|
|
|
|
extern TyObject * _TyModule_GetFilenameObject(TyObject *);
|
|
extern Ty_ssize_t _TyModule_GetFilenameUTF8(
|
|
TyObject *module,
|
|
char *buffer,
|
|
Ty_ssize_t maxlen);
|
|
|
|
TyObject* _Ty_module_getattro_impl(PyModuleObject *m, TyObject *name, int suppress);
|
|
TyObject* _Ty_module_getattro(TyObject *m, TyObject *name);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif /* !Ty_INTERNAL_MODULEOBJECT_H */
|