Issue #15142: Fix reference leak when deallocating instances of types created using PyType_FromSpec().

This commit is contained in:
Antoine Pitrou 2012-06-23 14:45:21 +02:00
commit a4db02c7a3
2 changed files with 9 additions and 0 deletions

View File

@ -10,6 +10,9 @@ What's New in Python 3.3.0 Beta 1?
Core and Builtins
-----------------
- Issue #15142: Fix reference leak when deallocating instances of types
created using PyType_FromSpec().
- Issue #15042: Add PyState_AddModule and PyState_RemoveModule. Add version
guard for Py_LIMITED_API additions. Patch by Robin Schreiber.

View File

@ -2417,6 +2417,12 @@ PyType_FromSpec(PyType_Spec *spec)
if (res->ht_type.tp_dictoffset) {
res->ht_cached_keys = _PyDict_NewKeysForClass();
}
if (res->ht_type.tp_dealloc == NULL) {
/* It's a heap type, so needs the heap types' dealloc.
subtype_dealloc will call the base type's tp_dealloc, if
necessary. */
res->ht_type.tp_dealloc = subtype_dealloc;
}
if (PyType_Ready(&res->ht_type) < 0)
goto fail;