diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2012-08-02 22:32:35 -0700 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2012-08-02 22:32:35 -0700 |
| commit | 55192a82b73c536b66024bb55e92e97615ac0da3 (patch) | |
| tree | fd2930708d76de418264cc564d0ac0c682e6e84c | |
| parent | 6fb88f7e1dfb9c6e62fd994ef8158360e1823f01 (diff) | |
| parent | 81b41e84e98004fefe9e466304c6a93b5f20d156 (diff) | |
| download | mruby-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.c | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -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* |
