diff options
author | Savannah Ostrowski <savannahostrowski@gmail.com> | 2023-10-29 20:53:25 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-29 20:53:25 (GMT) |
commit | 4a929d432b48775096d40f5c72bcd9be052b0a2d (patch) | |
tree | d173b58d3a38aeb2013c15c9292084214e56061d /Python | |
parent | 4d6bdf8aabcc92303041420a96750fbc52c9f213 (diff) | |
download | cpython-4a929d432b48775096d40f5c72bcd9be052b0a2d.zip cpython-4a929d432b48775096d40f5c72bcd9be052b0a2d.tar.gz cpython-4a929d432b48775096d40f5c72bcd9be052b0a2d.tar.bz2 |
GH-111339: Fix initialization and finalization of static optimizer types (GH-111430)
Diffstat (limited to 'Python')
-rw-r--r-- | Python/optimizer.c | 24 |
1 files changed, 10 insertions, 14 deletions
diff --git a/Python/optimizer.c b/Python/optimizer.c index 6402287..c239b03 100644 --- a/Python/optimizer.c +++ b/Python/optimizer.c @@ -111,7 +111,7 @@ error_optimize( return -1; } -static PyTypeObject DefaultOptimizer_Type = { +PyTypeObject _PyDefaultOptimizer_Type = { PyVarObject_HEAD_INIT(&PyType_Type, 0) .tp_name = "noop_optimizer", .tp_basicsize = sizeof(_PyOptimizerObject), @@ -120,7 +120,7 @@ static PyTypeObject DefaultOptimizer_Type = { }; _PyOptimizerObject _PyOptimizer_Default = { - PyObject_HEAD_INIT(&DefaultOptimizer_Type) + PyObject_HEAD_INIT(&_PyDefaultOptimizer_Type) .optimize = error_optimize, .resume_threshold = UINT16_MAX, .backedge_threshold = UINT16_MAX, @@ -236,7 +236,7 @@ static PyMethodDef executor_methods[] = { { NULL, NULL }, }; -static PyTypeObject CounterExecutor_Type = { +PyTypeObject _PyCounterExecutor_Type = { PyVarObject_HEAD_INIT(&PyType_Type, 0) .tp_name = "counting_executor", .tp_basicsize = sizeof(_PyCounterExecutorObject), @@ -265,7 +265,7 @@ counter_optimize( int Py_UNUSED(curr_stackentries) ) { - _PyCounterExecutorObject *executor = (_PyCounterExecutorObject *)_PyObject_New(&CounterExecutor_Type); + _PyCounterExecutorObject *executor = (_PyCounterExecutorObject *)_PyObject_New(&_PyCounterExecutor_Type); if (executor == NULL) { return -1; } @@ -291,7 +291,7 @@ static PyMethodDef counter_optimizer_methods[] = { { NULL, NULL }, }; -static PyTypeObject CounterOptimizer_Type = { +PyTypeObject _PyCounterOptimizer_Type = { PyVarObject_HEAD_INIT(&PyType_Type, 0) .tp_name = "Counter optimizer", .tp_basicsize = sizeof(_PyCounterOptimizerObject), @@ -304,9 +304,7 @@ static PyTypeObject CounterOptimizer_Type = { PyObject * PyUnstable_Optimizer_NewCounter(void) { - PyType_Ready(&CounterExecutor_Type); - PyType_Ready(&CounterOptimizer_Type); - _PyCounterOptimizerObject *opt = (_PyCounterOptimizerObject *)_PyObject_New(&CounterOptimizer_Type); + _PyCounterOptimizerObject *opt = (_PyCounterOptimizerObject *)_PyObject_New(&_PyCounterOptimizer_Type); if (opt == NULL) { return NULL; } @@ -375,7 +373,7 @@ PySequenceMethods uop_as_sequence = { .sq_item = (ssizeargfunc)uop_item, }; -static PyTypeObject UOpExecutor_Type = { +PyTypeObject _PyUOpExecutor_Type = { PyVarObject_HEAD_INIT(&PyType_Type, 0) .tp_name = "uop_executor", .tp_basicsize = sizeof(_PyUOpExecutorObject) - sizeof(_PyUOpInstruction), @@ -929,7 +927,7 @@ uop_optimize( trace_length = _Py_uop_analyze_and_optimize(code, trace, trace_length, curr_stackentries); } trace_length = remove_unneeded_uops(trace, trace_length); - _PyUOpExecutorObject *executor = PyObject_NewVar(_PyUOpExecutorObject, &UOpExecutor_Type, trace_length); + _PyUOpExecutorObject *executor = PyObject_NewVar(_PyUOpExecutorObject, &_PyUOpExecutor_Type, trace_length); if (executor == NULL) { return -1; } @@ -946,7 +944,7 @@ uop_opt_dealloc(PyObject *self) { PyObject_Free(self); } -static PyTypeObject UOpOptimizer_Type = { +PyTypeObject _PyUOpOptimizer_Type = { PyVarObject_HEAD_INIT(&PyType_Type, 0) .tp_name = "uop_optimizer", .tp_basicsize = sizeof(_PyOptimizerObject), @@ -958,9 +956,7 @@ static PyTypeObject UOpOptimizer_Type = { PyObject * PyUnstable_Optimizer_NewUOpOptimizer(void) { - PyType_Ready(&UOpExecutor_Type); - PyType_Ready(&UOpOptimizer_Type); - _PyOptimizerObject *opt = PyObject_New(_PyOptimizerObject, &UOpOptimizer_Type); + _PyOptimizerObject *opt = PyObject_New(_PyOptimizerObject, &_PyUOpOptimizer_Type); if (opt == NULL) { return NULL; } |