]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Backport 2.193:
authorGuido van Rossum <guido@python.org>
Fri, 11 Oct 2002 20:37:58 +0000 (20:37 +0000)
committerGuido van Rossum <guido@python.org>
Fri, 11 Oct 2002 20:37:58 +0000 (20:37 +0000)
PyObject_Init[Var] is almost always called from the PyObject_NEW[_VAR]
macros.  The 'op' argument is then the result from PyObject_MALLOC,
and that can of course be NULL.  In that case, PyObject_Init[Var]
would raise a SystemError with "NULL object passed to
PyObject_Init[Var]".  But there's nothing the caller of the macro can
do about this.  So PyObject_Init[Var] should call just PyErr_NoMemory.

Objects/object.c

index 27efb4ad24c9a38c3066b65ab9b0463e433f3d51..51801d80a2c437539ddd4ae18db74c72406a4e46 100644 (file)
@@ -99,11 +99,8 @@ inc_count(PyTypeObject *tp)
 PyObject *
 PyObject_Init(PyObject *op, PyTypeObject *tp)
 {
-       if (op == NULL) {
-               PyErr_SetString(PyExc_SystemError,
-                               "NULL object passed to PyObject_Init");
-               return op;
-       }
+       if (op == NULL)
+               return PyErr_NoMemory();
        /* Any changes should be reflected in PyObject_INIT (objimpl.h) */
        op->ob_type = tp;
        _Py_NewReference(op);
@@ -113,11 +110,8 @@ PyObject_Init(PyObject *op, PyTypeObject *tp)
 PyVarObject *
 PyObject_InitVar(PyVarObject *op, PyTypeObject *tp, int size)
 {
-       if (op == NULL) {
-               PyErr_SetString(PyExc_SystemError,
-                               "NULL object passed to PyObject_InitVar");
-               return op;
-       }
+       if (op == NULL)
+               return (PyVarObject *) PyErr_NoMemory();
        /* Any changes should be reflected in PyObject_INIT_VAR */
        op->ob_size = size;
        op->ob_type = tp;