From 2d8adff10a92fb979795e339395711f782fe71f8 Mon Sep 17 00:00:00 2001 From: Barry Warsaw Date: Fri, 29 Aug 1997 21:54:35 +0000 Subject: [PATCH] PyErr_NoMemory(): If the pre-instantiated memory exception is non-null (PyExc_MemoryErrorInst) raise this instead of PyExc_MemoryError. This only happens when exception classes are enabled (e.g. when Python is started with -X). --- Python/errors.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Python/errors.c b/Python/errors.c index 48649fda3c..91c543d0fa 100644 --- a/Python/errors.c +++ b/Python/errors.c @@ -256,7 +256,15 @@ PyErr_BadArgument() PyObject * PyErr_NoMemory() { - PyErr_SetNone(PyExc_MemoryError); + /* raise the pre-allocated instance if it still exists */ + if (PyExc_MemoryErrorInst) + PyErr_SetObject(PyExc_MemoryError, PyExc_MemoryErrorInst); + else + /* this will probably fail since there's no memory and hee, + hee, we have to instantiate this class + */ + PyErr_SetNone(PyExc_MemoryError); + return NULL; } -- 2.40.0