@@ -556,6 +556,11 @@ init_interpreter(PyInterpreterState *interp,
556556#ifdef Py_GIL_DISABLED
557557 _Py_brc_init_state (interp );
558558#endif
559+
560+ #ifdef _Py_TIER2
561+ // Ensure the buffer is to be set as NULL.
562+ interp -> jit_uop_buffer = NULL ;
563+ #endif
559564 llist_init (& interp -> mem_free_queue .head );
560565 llist_init (& interp -> asyncio_tasks_head );
561566 interp -> asyncio_tasks_lock = (PyMutex ){0 };
@@ -803,6 +808,10 @@ interpreter_clear(PyInterpreterState *interp, PyThreadState *tstate)
803808
804809#ifdef _Py_TIER2
805810 _Py_ClearExecutorDeletionList (interp );
811+ if (interp -> jit_uop_buffer != NULL ) {
812+ PyMem_RawFree (interp -> jit_uop_buffer );
813+ interp -> jit_uop_buffer = NULL ;
814+ }
806815#endif
807816 _PyAST_Fini (interp );
808817 _PyAtExit_Fini (interp );
@@ -1536,11 +1545,6 @@ new_threadstate(PyInterpreterState *interp, int whence)
15361545 }
15371546#endif
15381547
1539- #ifdef _Py_TIER2
1540- // Ensure the buffer is to be set as NULL.
1541- tstate -> jit_uop_buffer = NULL ;
1542- #endif
1543-
15441548 /* We serialize concurrent creation to protect global state. */
15451549 HEAD_LOCK (interp -> runtime );
15461550
@@ -1731,14 +1735,6 @@ PyThreadState_Clear(PyThreadState *tstate)
17311735 _Py_ClearTLBCIndex ((_PyThreadStateImpl * )tstate );
17321736#endif
17331737
1734- #ifdef _Py_TIER2
1735- _PyThreadStateImpl * _tstate = (_PyThreadStateImpl * )tstate ;
1736- if (_tstate -> jit_uop_buffer != NULL ) {
1737- PyMem_RawFree (_tstate -> jit_uop_buffer );
1738- _tstate -> jit_uop_buffer = NULL ;
1739- }
1740- #endif
1741-
17421738 // Merge our queue of pointers to be freed into the interpreter queue.
17431739 _PyMem_AbandonDelayed (tstate );
17441740
0 commit comments