summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/gc.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/gc.c b/src/gc.c
index 9c82f858c..9a630f626 100644
--- a/src/gc.c
+++ b/src/gc.c
@@ -151,13 +151,15 @@ gettimeofday_time(void)
void*
mrb_realloc(mrb_state *mrb, void *p, size_t len)
{
- p = (mrb->allocf)(mrb, p, len);
+ void *p2;
- if (!p && len > 0 && mrb->heaps) {
+ p2 = (mrb->allocf)(mrb, p, len);
+
+ if (!p2 && len > 0 && mrb->heaps) {
mrb_garbage_collect(mrb);
- p = (mrb->allocf)(mrb, p, len);
+ p2 = (mrb->allocf)(mrb, p, len);
}
- return p;
+ return p2;
}
void*