diff options
Diffstat (limited to 'src/gc.c')
| -rw-r--r-- | src/gc.c | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -201,6 +201,8 @@ gettimeofday_time(void) #define objects(p) ((RVALUE *)p->objects) +mrb_noreturn void mrb_raise_nomemory(mrb_state *mrb); + MRB_API void* mrb_realloc_simple(mrb_state *mrb, void *p, size_t len) { @@ -224,12 +226,12 @@ mrb_realloc(mrb_state *mrb, void *p, size_t len) if (len == 0) return p2; if (p2 == NULL) { if (mrb->gc.out_of_memory) { - mrb_exc_raise(mrb, mrb_obj_value(mrb->nomem_err)); + mrb_raise_nomemory(mrb); /* mrb_panic(mrb); */ } else { mrb->gc.out_of_memory = TRUE; - mrb_exc_raise(mrb, mrb_obj_value(mrb->nomem_err)); + mrb_raise_nomemory(mrb); } } else { @@ -1294,6 +1296,7 @@ mrb_full_gc(mrb_state *mrb) { mrb_gc *gc = &mrb->gc; + if (!mrb->c) return; if (gc->disabled || gc->iterating) return; GC_INVOKE_TIME_REPORT("mrb_full_gc()"); |
