LCOV - code coverage report
Current view: top level - Include/internal - pycore_moduleobject.h (source / functions) Hit Total Coverage
Test: CPython 3.12 LCOV report [commit acb105a7c1f] Lines: 7 7 100.0 %
Date: 2022-07-20 13:12:14 Functions: 3 3 100.0 %
Branches: 0 0 -

           Branch data     Line data    Source code
       1                 :            : #ifndef Py_INTERNAL_MODULEOBJECT_H
       2                 :            : #define Py_INTERNAL_MODULEOBJECT_H
       3                 :            : #ifdef __cplusplus
       4                 :            : extern "C" {
       5                 :            : #endif
       6                 :            : 
       7                 :            : #ifndef Py_BUILD_CORE
       8                 :            : #  error "this header requires Py_BUILD_CORE define"
       9                 :            : #endif
      10                 :            : 
      11                 :            : typedef struct {
      12                 :            :     PyObject_HEAD
      13                 :            :     PyObject *md_dict;
      14                 :            :     PyModuleDef *md_def;
      15                 :            :     void *md_state;
      16                 :            :     PyObject *md_weaklist;
      17                 :            :     // for logging purposes after md_dict is cleared
      18                 :            :     PyObject *md_name;
      19                 :            : } PyModuleObject;
      20                 :            : 
      21                 :   10265040 : static inline PyModuleDef* _PyModule_GetDef(PyObject *mod) {
      22                 :            :     assert(PyModule_Check(mod));
      23                 :   10265040 :     return ((PyModuleObject *)mod)->md_def;
      24                 :            : }
      25                 :            : 
      26                 :   40056739 : static inline void* _PyModule_GetState(PyObject* mod) {
      27                 :            :     assert(PyModule_Check(mod));
      28                 :   40056739 :     return ((PyModuleObject *)mod)->md_state;
      29                 :            : }
      30                 :            : 
      31                 :    2400621 : static inline PyObject* _PyModule_GetDict(PyObject *mod) {
      32                 :            :     assert(PyModule_Check(mod));
      33                 :    2400621 :     PyObject *dict = ((PyModuleObject *)mod) -> md_dict;
      34                 :            :     // _PyModule_GetDict(mod) must not be used after calling module_clear(mod)
      35                 :            :     assert(dict != NULL);
      36                 :    2400621 :     return dict;
      37                 :            : }
      38                 :            : 
      39                 :            : #ifdef __cplusplus
      40                 :            : }
      41                 :            : #endif
      42                 :            : #endif /* !Py_INTERNAL_MODULEOBJECT_H */

Generated by: LCOV version 1.14