]> granicus.if.org Git - python/commitdiff
Add pymalloc object memory management functions. These must be
authorNeil Schemenauer <nascheme@enme.ucalgary.ca>
Fri, 22 Mar 2002 15:28:30 +0000 (15:28 +0000)
committerNeil Schemenauer <nascheme@enme.ucalgary.ca>
Fri, 22 Mar 2002 15:28:30 +0000 (15:28 +0000)
available even if pymalloc is disabled since extension modules might use
them.

Objects/object.c

index 1602e893c9911ad6b4ba75c5b9a6d8ddb1e94acf..494e840237603fb106c5bfef86019ec632c7ff88 100644 (file)
@@ -2109,3 +2109,27 @@ void _PyMalloc_Free(void *p)
        PyMem_FREE(p);
 }
 #endif /* !WITH_PYMALLOC */
+
+PyObject *_PyMalloc_New(PyTypeObject *tp)
+{
+       PyObject *op;
+       op = (PyObject *) _PyMalloc_MALLOC(_PyObject_SIZE(tp));
+       if (op == NULL)
+               return PyErr_NoMemory();
+       return PyObject_INIT(op, tp);
+}
+
+PyVarObject *_PyMalloc_NewVar(PyTypeObject *tp, int nitems)
+{
+       PyVarObject *op;
+       const size_t size = _PyObject_VAR_SIZE(tp, nitems);
+       op = (PyVarObject *) _PyMalloc_MALLOC(size);
+       if (op == NULL)
+               return (PyVarObject *)PyErr_NoMemory();
+       return PyObject_INIT_VAR(op, tp, nitems);
+}
+
+void _PyMalloc_Del(PyObject *op)
+{
+       _PyMalloc_FREE(op);
+}