diff options
Diffstat (limited to 'Objects/codeobject.c')
-rw-r--r-- | Objects/codeobject.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/Objects/codeobject.c b/Objects/codeobject.c index f983d66..bb8ffa7 100644 --- a/Objects/codeobject.c +++ b/Objects/codeobject.c @@ -1908,16 +1908,19 @@ _PyCode_ConstantKey(PyObject *op) } void -_PyStaticCode_Dealloc(PyCodeObject *co, _Py_CODEUNIT *firstinstr) +_PyStaticCode_Dealloc(PyCodeObject *co) { - PyMem_Free(co->co_quickened); - co->co_quickened = NULL; + if (co->co_quickened) { + PyMem_Free(co->co_quickened); + co->co_quickened = NULL; + _Py_QuickenedCount--; + } + co->co_warmup = QUICKENING_INITIAL_WARMUP_VALUE; PyMem_Free(co->co_extra); co->co_extra = NULL; - co->co_firstinstr = firstinstr; + co->co_firstinstr = (_Py_CODEUNIT *)PyBytes_AS_STRING(co->co_code); if (co->co_weakreflist != NULL) { PyObject_ClearWeakRefs((PyObject *)co); co->co_weakreflist = NULL; } - co->co_warmup = QUICKENING_INITIAL_WARMUP_VALUE; } |