Issue #18408: Fix PyCode_Optimize(): raise a MemoryError on memory allocation
failure.
diff --git a/Python/peephole.c b/Python/peephole.c
index e6877bb..a49790a 100644
--- a/Python/peephole.c
+++ b/Python/peephole.c
@@ -381,8 +381,10 @@
/* Make a modifiable copy of the code string */
codestr = (unsigned char *)PyMem_Malloc(codelen);
- if (codestr == NULL)
+ if (codestr == NULL) {
+ PyErr_NoMemory();
goto exitError;
+ }
codestr = (unsigned char *)memcpy(codestr,
PyBytes_AS_STRING(code), codelen);
@@ -396,8 +398,10 @@
/* Mapping to new jump targets after NOPs are removed */
addrmap = (int *)PyMem_Malloc(codelen * sizeof(int));
- if (addrmap == NULL)
+ if (addrmap == NULL) {
+ PyErr_NoMemory();
goto exitError;
+ }
blocks = markblocks(codestr, codelen);
if (blocks == NULL)