return NULL;
}
+#ifdef Py_GIL_DISABLED
+ co->_co_unique_id = _Py_INVALID_UNIQUE_ID;
+#endif
+
if (init_code(co, con) < 0) {
Py_DECREF(co);
return NULL;
FT_CLEAR_WEAKREFS(self, co->co_weakreflist);
free_monitoring_data(co->_co_monitoring);
#ifdef Py_GIL_DISABLED
- // The first element always points to the mutable bytecode at the end of
- // the code object, which will be freed when the code object is freed.
- for (Py_ssize_t i = 1; i < co->co_tlbc->size; i++) {
- char *entry = co->co_tlbc->entries[i];
- if (entry != NULL) {
- PyMem_Free(entry);
+ if (co->co_tlbc != NULL) {
+ // The first element always points to the mutable bytecode at the end of
+ // the code object, which will be freed when the code object is freed.
+ for (Py_ssize_t i = 1; i < co->co_tlbc->size; i++) {
+ char *entry = co->co_tlbc->entries[i];
+ if (entry != NULL) {
+ PyMem_Free(entry);
+ }
}
+ PyMem_Free(co->co_tlbc);
}
- PyMem_Free(co->co_tlbc);
#endif
PyObject_Free(co);
}