summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2012-08-02 22:32:35 -0700
committerYukihiro "Matz" Matsumoto <[email protected]>2012-08-02 22:32:35 -0700
commit55192a82b73c536b66024bb55e92e97615ac0da3 (patch)
treefd2930708d76de418264cc564d0ac0c682e6e84c
parent6fb88f7e1dfb9c6e62fd994ef8158360e1823f01 (diff)
parent81b41e84e98004fefe9e466304c6a93b5f20d156 (diff)
downloadmruby-55192a82b73c536b66024bb55e92e97615ac0da3.tar.gz
mruby-55192a82b73c536b66024bb55e92e97615ac0da3.zip
Merge pull request #414 from monaka/pr-fix-memory-reak-in-mrb_realloc
Fix a memory leak in mrb_realloc().
-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*