[Python-checkins] python/dist/src/Objects object.c,2.192,2.193
gvanrossum@users.sourceforge.net
gvanrossum@users.sourceforge.net
Fri, 11 Oct 2002 13:37:26 -0700
Update of /cvsroot/python/python/dist/src/Objects
In directory usw-pr-cvs1:/tmp/cvs-serv7786
Modified Files:
object.c
Log Message:
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.
Index: object.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/object.c,v
retrieving revision 2.192
retrieving revision 2.193
diff -C2 -d -r2.192 -r2.193
*** object.c 24 Aug 2002 06:31:34 -0000 2.192
--- object.c 11 Oct 2002 20:37:24 -0000 2.193
***************
*** 110,118 ****
PyObject_Init(PyObject *op, PyTypeObject *tp)
{
! if (op == NULL) {
! PyErr_SetString(PyExc_SystemError,
! "NULL object passed to PyObject_Init");
! return op;
! }
/* Any changes should be reflected in PyObject_INIT (objimpl.h) */
op->ob_type = tp;
--- 110,115 ----
PyObject_Init(PyObject *op, PyTypeObject *tp)
{
! if (op == NULL)
! return PyErr_NoMemory();
/* Any changes should be reflected in PyObject_INIT (objimpl.h) */
op->ob_type = tp;
***************
*** 124,132 ****
PyObject_InitVar(PyVarObject *op, PyTypeObject *tp, int size)
{
! if (op == NULL) {
! PyErr_SetString(PyExc_SystemError,
! "NULL object passed to PyObject_InitVar");
! return op;
! }
/* Any changes should be reflected in PyObject_INIT_VAR */
op->ob_size = size;
--- 121,126 ----
PyObject_InitVar(PyVarObject *op, PyTypeObject *tp, int size)
{
! if (op == NULL)
! return (PyVarObject *) PyErr_NoMemory();
/* Any changes should be reflected in PyObject_INIT_VAR */
op->ob_size = size;