[Python-checkins] r50909 - in python/branches/bcannon-sandboxing: Include/objimpl.h Modules/gcmodule.c Objects/typeobject.c
brett.cannon
python-checkins at python.org
Fri Jul 28 19:22:32 CEST 2006
Author: brett.cannon
Date: Fri Jul 28 19:22:31 2006
New Revision: 50909
Modified:
python/branches/bcannon-sandboxing/Include/objimpl.h
python/branches/bcannon-sandboxing/Modules/gcmodule.c
python/branches/bcannon-sandboxing/Objects/typeobject.c
Log:
Change _PyObject_GC_Malloc() to _PyObject_GC_TrackedMalloc() and take in a
const char * to denote what the memory is for. Also switch over
PyObject_GC_New() & friends to be tracked.
Modified: python/branches/bcannon-sandboxing/Include/objimpl.h
==============================================================================
--- python/branches/bcannon-sandboxing/Include/objimpl.h (original)
+++ python/branches/bcannon-sandboxing/Include/objimpl.h Fri Jul 28 19:22:31 2006
@@ -320,7 +320,7 @@
g->gc.gc_next = NULL; \
} while (0);
-PyAPI_FUNC(PyObject *) _PyObject_GC_Malloc(size_t);
+PyAPI_FUNC(PyObject *) _PyObject_GC_TrackedMalloc(const char *, size_t);
PyAPI_FUNC(PyObject *) _PyObject_GC_New(PyTypeObject *);
PyAPI_FUNC(PyVarObject *) _PyObject_GC_NewVar(PyTypeObject *, Py_ssize_t);
PyAPI_FUNC(void) PyObject_GC_Track(void *);
Modified: python/branches/bcannon-sandboxing/Modules/gcmodule.c
==============================================================================
--- python/branches/bcannon-sandboxing/Modules/gcmodule.c (original)
+++ python/branches/bcannon-sandboxing/Modules/gcmodule.c Fri Jul 28 19:22:31 2006
@@ -1281,7 +1281,7 @@
#undef PyObject_GC_Track
#undef PyObject_GC_UnTrack
#undef PyObject_GC_Del
-#undef _PyObject_GC_Malloc
+#undef _PyObject_GC_TrackedMalloc
void
PyObject_GC_Track(void *op)
@@ -1314,12 +1314,12 @@
}
PyObject *
-_PyObject_GC_Malloc(size_t basicsize)
+_PyObject_GC_TrackedMalloc(const char* what, size_t basicsize)
{
PyObject *op;
PyGC_Head *g = NULL;
- g = (PyGC_Head *)PyObject_MALLOC(sizeof(PyGC_Head) + basicsize);
+ g = (PyGC_Head *)PyObject_T_MALLOC(what, sizeof(PyGC_Head) + basicsize);
if (g == NULL)
return PyErr_NoMemory();
g->gc.gc_refs = GC_UNTRACKED;
@@ -1343,7 +1343,7 @@
PyObject *op = NULL;
size_t obj_size = _PyObject_SIZE(tp);
- op = _PyObject_GC_Malloc(obj_size);
+ op = _PyObject_GC_TrackedMalloc(tp->tp_name, obj_size);
if (op != NULL)
op = PyObject_INIT(op, tp);
return op;
@@ -1355,7 +1355,7 @@
const size_t size = _PyObject_VAR_SIZE(tp, nitems);
PyVarObject *op = NULL;
- op = (PyVarObject *) _PyObject_GC_Malloc(size);
+ op = (PyVarObject *) _PyObject_GC_TrackedMalloc(tp->tp_name, size);
if (op != NULL)
op = PyObject_INIT_VAR(op, tp, nitems);
return op;
@@ -1366,7 +1366,8 @@
{
const size_t basicsize = _PyObject_VAR_SIZE(op->ob_type, nitems);
PyGC_Head *g = AS_GC(op);
- g = (PyGC_Head *)PyObject_REALLOC(g, sizeof(PyGC_Head) + basicsize);
+ g = (PyGC_Head *)PyObject_T_REALLOC(((PyObject *)op)->ob_type->tp_name,
+ g, sizeof(PyGC_Head) + basicsize);
if (g == NULL)
return (PyVarObject *)PyErr_NoMemory();
op = (PyVarObject *) FROM_GC(g);
@@ -1383,7 +1384,7 @@
if (generations[0].count > 0) {
generations[0].count--;
}
- PyObject_FREE(g);
+ PyObject_T_FREE(((PyObject *)op)->ob_type->tp_name, g);
}
/* for binary compatibility with 2.2 */
Modified: python/branches/bcannon-sandboxing/Objects/typeobject.c
==============================================================================
--- python/branches/bcannon-sandboxing/Objects/typeobject.c (original)
+++ python/branches/bcannon-sandboxing/Objects/typeobject.c Fri Jul 28 19:22:31 2006
@@ -451,7 +451,7 @@
/* note that we need to add one, for the sentinel */
if (PyType_IS_GC(type))
- obj = _PyObject_GC_Malloc(size);
+ obj = _PyObject_GC_TrackedMalloc(type->tp_name, size);
else
obj = (PyObject *)PyObject_Malloc(size);
More information about the Python-checkins
mailing list