summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2002-10-11 20:37:24 (GMT)
committerGuido van Rossum <guido@python.org>2002-10-11 20:37:24 (GMT)
commit6e08c1460c79962a98e106437a089d2fe306403c (patch)
tree4cfee2618b8054f0522ec43dfd458828e6e3f389
parentc78462fb94b15d71c0dbfa6f3dfc2fabd29f635f (diff)
downloadcpython-6e08c1460c79962a98e106437a089d2fe306403c.zip
cpython-6e08c1460c79962a98e106437a089d2fe306403c.tar.gz
cpython-6e08c1460c79962a98e106437a089d2fe306403c.tar.bz2
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. Will backport.
-rw-r--r--Objects/object.c14
1 files changed, 4 insertions, 10 deletions
diff --git a/Objects/object.c b/Objects/object.c
index 523a881..20a6a93 100644
--- a/Objects/object.c
+++ b/Objects/object.c
@@ -109,11 +109,8 @@ _Py_NegativeRefcount(const char *fname, int lineno, PyObject *op)
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);
@@ -123,11 +120,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;