1
+ # For up-to-date results, run:
2
+ # ./python Tools/c-analyzer/c-analyzer.py check --format summary
3
+ # or
4
+ # ./python Tools/c-analyzer/c-analyzer.py analyze
5
+
6
+
7
+ #######################################
8
+ # non-PyObject (61)
1
9
2
10
# allocator (16)
3
11
Objects/obmalloc.c:_PyMem static PyMemAllocatorEx _PyMem
@@ -32,12 +40,7 @@ Objects/dictobject.c:empty_keys_struct static PyDictKe
32
40
Python/fileutils.c:_Py_open_cloexec_works int _Py_open_cloexec_works
33
41
34
42
35
- # freelists
36
- Objects/dictobject.c:keys_free_list static PyDictKeysObject *keys_free_list[PyDict_MAXFREELIST]
37
- Objects/dictobject.c:numfreekeys static int numfreekeys
38
-
39
-
40
- # other non-object (43)
43
+ # other non-object (40)
41
44
Modules/_tracemalloc.c:allocators static struct { PyMemAllocatorEx mem; PyMemAllocatorEx raw; PyMemAllocatorEx obj; } allocators
42
45
Modules/_tracemalloc.c:tables_lock static PyThread_type_lock tables_lock
43
46
Modules/_tracemalloc.c:tracemalloc_filenames static _Py_hashtable_t *tracemalloc_filenames
@@ -81,30 +84,7 @@ Python/pylifecycle.c:fatal_error():reentrant static int reen
81
84
82
85
83
86
#######################################
84
- # PyObject (960)
85
-
86
- # freelists (10 + 10)
87
- Modules/_collectionsmodule.c:freeblocks static block *freeblocks[MAXFREEBLOCKS]
88
- Modules/_collectionsmodule.c:numfreeblocks static Py_ssize_t numfreeblocks
89
- Objects/dictobject.c:free_list static PyDictObject *free_list[PyDict_MAXFREELIST]
90
- Objects/dictobject.c:numfree static int numfree
91
- Objects/exceptions.c:memerrors_freelist static PyBaseExceptionObject *memerrors_freelist
92
- Objects/exceptions.c:memerrors_numfree static int memerrors_numfree
93
- Objects/floatobject.c:free_list static PyFloatObject *free_list
94
- Objects/floatobject.c:numfree static int numfree
95
- Objects/frameobject.c:free_list static PyFrameObject *free_list
96
- Objects/frameobject.c:numfree static int numfree
97
- Objects/genobject.c:ag_asend_freelist static PyAsyncGenASend *ag_asend_freelist[_PyAsyncGen_MAXFREELIST]
98
- Objects/genobject.c:ag_asend_freelist_free static int ag_asend_freelist_free
99
- Objects/genobject.c:ag_value_freelist static _PyAsyncGenWrappedValue *ag_value_freelist[_PyAsyncGen_MAXFREELIST]
100
- Objects/genobject.c:ag_value_freelist_free static int ag_value_freelist_free
101
- Objects/listobject.c:free_list static PyListObject *free_list[PyList_MAXFREELIST]
102
- Objects/listobject.c:numfree static int numfree
103
- Objects/tupleobject.c:free_list static PyTupleObject *free_list[PyTuple_MAXSAVESIZE]
104
- Objects/tupleobject.c:numfree static int numfree[PyTuple_MAXSAVESIZE]
105
- Python/context.c:ctx_freelist static PyContext *ctx_freelist
106
- Python/context.c:ctx_freelist_len static int ctx_freelist_len
107
-
87
+ # PyObject (919)
108
88
109
89
# singletons (7)
110
90
Objects/boolobject.c:_Py_FalseStruct static struct _longobject _Py_FalseStruct
@@ -116,16 +96,8 @@ Objects/object.c:_Py_NotImplementedStruct PyObject _Py_No
116
96
Objects/sliceobject.c:_Py_EllipsisObject PyObject _Py_EllipsisObject
117
97
118
98
119
- # module vars (9)
120
- Modules/_functoolsmodule.c:kwd_mark static PyObject *kwd_mark
121
- Modules/_localemodule.c:Error static PyObject *Error
122
- Modules/_threadmodule.c:ThreadError static PyObject *ThreadError
99
+ # module vars (1)
123
100
Modules/_tracemalloc.c:unknown_filename static PyObject *unknown_filename
124
- Modules/signalmodule.c:DefaultHandler static PyObject *DefaultHandler
125
- Modules/signalmodule.c:IgnoreHandler static PyObject *IgnoreHandler
126
- Modules/signalmodule.c:IntHandler static PyObject *IntHandler
127
- Modules/signalmodule.c:ItimerError static PyObject *ItimerError
128
- Objects/exceptions.c:errnomap static PyObject *errnomap
129
101
130
102
131
103
# other (non-cache) (5)
@@ -136,26 +108,15 @@ Modules/signalmodule.c:Handlers static volatile
136
108
Objects/setobject.c:_dummy_struct static PyObject _dummy_struct
137
109
138
110
139
- # caches (5)
140
- Modules/posixmodule.c:posix_putenv_garbage static PyObject *posix_putenv_garbage
141
- Objects/sliceobject.c:slice_cache static PySliceObject *slice_cache
142
- Objects/typeobject.c:method_cache static struct method_cache_entry method_cache[1 << MCACHE_SIZE_EXP]
143
- Objects/unicodeobject.c:interned static PyObject *interned
111
+ # caches (1)
144
112
Python/import.c:extensions static PyObject *extensions
145
113
146
114
147
- # cached constants - non-str (15 )
115
+ # cached constants - non-str (6 )
148
116
Modules/_io/_iomodule.c:_PyIO_empty_bytes PyObject *_PyIO_empty_bytes
149
117
Modules/_io/bufferedio.c:_PyIO_trap_eintr():eintr_int static PyObject *eintr_int
150
- Modules/posixmodule.c:billion static PyObject *billion
151
- Modules/posixmodule.c:wait_helper():struct_rusage static PyObject *struct_rusage
152
- Objects/bytesobject.c:characters static PyBytesObject *characters[UCHAR_MAX + 1]
153
- Objects/bytesobject.c:nullstring static PyBytesObject *nullstring
154
- Objects/codeobject.c:PyCode_NewEmpty():nulltuple static PyObject *nulltuple
155
- Objects/dictobject.c:empty_values static PyObject *empty_values[1]
118
+ Objects/dictobject.c:empty_values_struct static PyDictValues
156
119
Objects/listobject.c:indexerr static PyObject *indexerr
157
- Objects/longobject.c:small_ints static PyLongObject small_ints[NSMALLNEGINTS + NSMALLPOSINTS]
158
- Objects/setobject.c:emptyfrozenset static PyObject *emptyfrozenset
159
120
Python/context.c:_token_missing static PyObject *_token_missing
160
121
Python/hamt.c:_empty_hamt static PyHamtObject *_empty_hamt
161
122
@@ -662,15 +623,6 @@ Modules/itertoolsmodule.c:takewhile_type static PyTypeOb
662
623
Modules/itertoolsmodule.c:tee_type static PyTypeObject tee_type
663
624
Modules/itertoolsmodule.c:teedataobject_type static PyTypeObject teedataobject_type
664
625
Modules/itertoolsmodule.c:ziplongest_type static PyTypeObject ziplongest_type
665
- Modules/posixmodule.c:DirEntryType static PyTypeObject DirEntryType
666
- Modules/posixmodule.c:ScandirIteratorType static PyTypeObject ScandirIteratorType
667
- Modules/posixmodule.c:SchedParamType static PyTypeObject* SchedParamType
668
- Modules/posixmodule.c:StatResultType static PyTypeObject* StatResultType
669
- Modules/posixmodule.c:StatVFSResultType static PyTypeObject* StatVFSResultType
670
- Modules/posixmodule.c:TerminalSizeType static PyTypeObject* TerminalSizeType
671
- Modules/posixmodule.c:TimesResultType static PyTypeObject* TimesResultType
672
- Modules/posixmodule.c:UnameResultType static PyTypeObject* UnameResultType
673
- Modules/posixmodule.c:WaitidResultType static PyTypeObject* WaitidResultType
674
626
Modules/signalmodule.c:SiginfoType static PyTypeObject SiginfoType
675
627
Modules/timemodule.c:StructTimeType static PyTypeObject StructTimeType
676
628
Modules/xxsubtype.c:spamdict_type static PyTypeObject spamdict_type
0 commit comments