Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitd4d5bae

Browse files
authored
gh-111968: Refactor _PyXXX_Fini to integrate with _PyObject_ClearFreeLists (gh-114899)
1 parent5643856 commitd4d5bae

20 files changed

+38
-107
lines changed

‎Include/internal/pycore_context.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ extern PyTypeObject _PyContextTokenMissing_Type;
1414
/* runtime lifecycle */
1515

1616
PyStatus_PyContext_Init(PyInterpreterState*);
17-
void_PyContext_Fini(_PyFreeListState*);
1817

1918

2019
/* other API */

‎Include/internal/pycore_floatobject.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ extern "C" {
1515

1616
externvoid_PyFloat_InitState(PyInterpreterState*);
1717
externPyStatus_PyFloat_InitTypes(PyInterpreterState*);
18-
externvoid_PyFloat_Fini(_PyFreeListState*);
1918
externvoid_PyFloat_FiniType(PyInterpreterState*);
2019

2120

‎Include/internal/pycore_freelist.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,16 @@ typedef struct _Py_freelist_state {
125125
struct_Py_object_stack_stateobject_stacks;
126126
}_PyFreeListState;
127127

128+
externvoid_PyObject_ClearFreeLists(_PyFreeListState*state,intis_finalization);
129+
externvoid_PyTuple_ClearFreeList(_PyFreeListState*state,intis_finalization);
130+
externvoid_PyFloat_ClearFreeList(_PyFreeListState*state,intis_finalization);
131+
externvoid_PyList_ClearFreeList(_PyFreeListState*state,intis_finalization);
132+
externvoid_PySlice_ClearFreeList(_PyFreeListState*state,intis_finalization);
133+
externvoid_PyDict_ClearFreeList(_PyFreeListState*state,intis_finalization);
134+
externvoid_PyAsyncGen_ClearFreeLists(_PyFreeListState*state,intis_finalization);
135+
externvoid_PyContext_ClearFreeList(_PyFreeListState*state,intis_finalization);
136+
externvoid_PyObjectStackChunk_ClearFreeList(_PyFreeListState*state,intis_finalization);
137+
128138
#ifdef__cplusplus
129139
}
130140
#endif

‎Include/internal/pycore_gc.h

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -279,14 +279,6 @@ extern PyObject *_PyGC_GetReferrers(PyInterpreterState *interp, PyObject *objs);
279279

280280
// Functions to clear types free lists
281281
externvoid_PyGC_ClearAllFreeLists(PyInterpreterState*interp);
282-
externvoid_Py_ClearFreeLists(_PyFreeListState*state,intis_finalization);
283-
externvoid_PyTuple_ClearFreeList(_PyFreeListState*state,intis_finalization);
284-
externvoid_PyFloat_ClearFreeList(_PyFreeListState*state,intis_finalization);
285-
externvoid_PyList_ClearFreeList(_PyFreeListState*state,intis_finalization);
286-
externvoid_PySlice_ClearCache(_PyFreeListState*state);
287-
externvoid_PyDict_ClearFreeList(_PyFreeListState*state,intis_finalization);
288-
externvoid_PyAsyncGen_ClearFreeLists(_PyFreeListState*state,intis_finalization);
289-
externvoid_PyContext_ClearFreeList(_PyFreeListState*state,intis_finalization);
290282
externvoid_Py_ScheduleGC(PyInterpreterState*interp);
291283
externvoid_Py_RunGC(PyThreadState*tstate);
292284

‎Include/internal/pycore_genobject.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,6 @@ extern PyTypeObject _PyCoroWrapper_Type;
2626
externPyTypeObject_PyAsyncGenWrappedValue_Type;
2727
externPyTypeObject_PyAsyncGenAThrow_Type;
2828

29-
/* runtime lifecycle */
30-
31-
externvoid_PyAsyncGen_Fini(_PyFreeListState*);
32-
3329
#ifdef__cplusplus
3430
}
3531
#endif

‎Include/internal/pycore_list.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,6 @@ extern "C" {
1313
externPyObject*_PyList_Extend(PyListObject*,PyObject*);
1414
externvoid_PyList_DebugMallocStats(FILE*out);
1515

16-
17-
/* runtime lifecycle */
18-
19-
externvoid_PyList_Fini(_PyFreeListState*);
20-
21-
2216
#define_PyList_ITEMS(op) _Py_RVALUE(_PyList_CAST(op)->ob_item)
2317

2418
externint

‎Include/internal/pycore_object_stack.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,6 @@ _PyObjectStackChunk_New(void);
3434
externvoid
3535
_PyObjectStackChunk_Free(_PyObjectStackChunk*);
3636

37-
externvoid
38-
_PyObjectStackChunk_ClearFreeList(_PyFreeListState*state,intis_finalization);
39-
4037
// Push an item onto the stack. Return -1 on allocation failure, 0 on success.
4138
staticinlineint
4239
_PyObjectStack_Push(_PyObjectStack*stack,PyObject*obj)

‎Include/internal/pycore_sliceobject.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ extern "C" {
1111

1212
/* runtime lifecycle */
1313

14-
externvoid_PySlice_Fini(_PyFreeListState*);
15-
1614
externPyObject*
1715
_PyBuildSlice_ConsumeRefs(PyObject*start,PyObject*stop);
1816

‎Include/internal/pycore_tuple.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ extern void _PyTuple_DebugMallocStats(FILE *out);
1414
/* runtime lifecycle */
1515

1616
externPyStatus_PyTuple_InitGlobalObjects(PyInterpreterState*);
17-
externvoid_PyTuple_Fini(_PyFreeListState*);
1817

1918

2019
/* other API */

‎Objects/floatobject.c

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2010,16 +2010,6 @@ _PyFloat_ClearFreeList(_PyFreeListState *freelist_state, int is_finalization)
20102010
#endif
20112011
}
20122012

2013-
void
2014-
_PyFloat_Fini(_PyFreeListState*state)
2015-
{
2016-
// With Py_GIL_DISABLED:
2017-
// the freelists for the current thread state have already been cleared.
2018-
#ifndefPy_GIL_DISABLED
2019-
_PyFloat_ClearFreeList(state,1);
2020-
#endif
2021-
}
2022-
20232013
void
20242014
_PyFloat_FiniType(PyInterpreterState*interp)
20252015
{

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp