From aa578c346db6058801a2b64781a50fab9ed1f74b Mon Sep 17 00:00:00 2001 From: Hiroshi Mimaki Date: Tue, 30 Jun 2020 18:33:47 +0900 Subject: Revert "Free the original pointer if `realloc` failed." This reverts commit 9cdf439db52b66447b4e37c61179d54fad6c8f33. --- src/gc.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/gc.c b/src/gc.c index 6c83911d5..03c561d35 100644 --- a/src/gc.c +++ b/src/gc.c @@ -225,9 +225,14 @@ mrb_realloc(mrb_state *mrb, void *p, size_t len) p2 = mrb_realloc_simple(mrb, p, len); if (len == 0) return p2; if (p2 == NULL) { - mrb_free(mrb, p); - mrb->gc.out_of_memory = TRUE; - mrb_raise_nomemory(mrb); + if (mrb->gc.out_of_memory) { + mrb_raise_nomemory(mrb); + /* mrb_panic(mrb); */ + } + else { + mrb->gc.out_of_memory = TRUE; + mrb_raise_nomemory(mrb); + } } else { mrb->gc.out_of_memory = FALSE; -- cgit v1.2.3