Christian Heimes added the comment:

MemoryError can be raised under two different circumstances that should be 
handled differently. Either the program tries to allocate a rather large chunk 
of memory for e.g. a string with a couple of hundred KB and more. Or Python 
can't malloc() even small amounts of memory for its most basic operations like 
raising an exception object. That's why PyErr_NoMemory() exists and why it uses 
a pre-allocated MemoryError object.

When a program can't allocate memory for an image it usually has enough memory 
left to do proper error reporting and shut down. However when even "x = 2 * 
200" fails with a memory error then proper shutdown will most likely fail and 
hang up the process, too.

Too bad that PyErr_NoMemory() is used for both scenarios and isn't aware how 
much memory was requested.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue16381>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to