diff --git a/src/load.c b/src/load.c index af0e519bd..d3e492856 100644 --- a/src/load.c +++ b/src/load.c @@ -502,6 +502,7 @@ mrb_read_irep(mrb_state *mrb, const char *bin) uint32_t len = 0; unsigned char *src; rite_binary_header bin_header; + int ai = mrb->arena_idx; if ((mrb == NULL) || (bin == NULL)) { return MRB_DUMP_INVALID_ARGUMENT; @@ -539,6 +540,7 @@ mrb_read_irep(mrb_state *mrb, const char *bin) mrb->irep_len += nirep; error_exit: + mrb->arena_idx = ai; if (ret != MRB_DUMP_OK) { for (n=0,i=sirep; nirep[i]) {