Mercurial > cpython-lru_cache-weakref
diff Objects/listobject.c @ 13183:54bffdddc0ef legacy-trunk
final patches from Neil Schemenauer for garbage collection
| author | Jeremy Hylton <jeremy@alum.mit.edu> |
|---|---|
| date | Fri, 30 Jun 2000 05:02:53 +0000 |
| parents | 8f79c5b69e0a |
| children | 916fb024ce94 |
line wrap: on
line diff
--- a/Objects/listobject.c Fri Jun 30 04:59:59 2000 +0000 +++ b/Objects/listobject.c Fri Jun 30 05:02:53 2000 +0000 @@ -72,10 +72,11 @@ } /* PyObject_NewVar is inlined */ op = (PyListObject *) PyObject_MALLOC(sizeof(PyListObject) - + PyGC_INFO_SIZE); + + PyGC_HEAD_SIZE); if (op == NULL) { return PyErr_NoMemory(); } + op = (PyListObject *) PyObject_FROM_GC(op); if (size <= 0) { op->ob_item = NULL; } @@ -89,6 +90,7 @@ PyObject_INIT_VAR(op, &PyList_Type, size); for (i = 0; i < size; i++) op->ob_item[i] = NULL; + PyObject_GC_Init(op); return (PyObject *) op; } @@ -216,6 +218,7 @@ { int i; Py_TRASHCAN_SAFE_BEGIN(op) + PyObject_GC_Fini(op); if (op->ob_item != NULL) { /* Do it backwards, for Christian Tismer. There's a simple test case where somehow this reduces @@ -1498,7 +1501,7 @@ PyObject_HEAD_INIT(&PyType_Type) 0, "list", - sizeof(PyListObject) + PyGC_INFO_SIZE, + sizeof(PyListObject) + PyGC_HEAD_SIZE, 0, (destructor)list_dealloc, /*tp_dealloc*/ (printfunc)list_print, /*tp_print*/ @@ -1577,7 +1580,7 @@ PyObject_HEAD_INIT(&PyType_Type) 0, "list (immutable, during sort)", - sizeof(PyListObject) + PyGC_INFO_SIZE, + sizeof(PyListObject) + PyGC_HEAD_SIZE, 0, 0, /*tp_dealloc*/ /* Cannot happen */ (printfunc)list_print, /*tp_print*/
