diff options
| -rw-r--r-- | src/load.c | 2 | ||||
| -rw-r--r-- | tasks/mrbgems_test.rake | 8 |
2 files changed, 7 insertions, 3 deletions
diff --git a/src/load.c b/src/load.c index bc2f07af5..213d8f899 100644 --- a/src/load.c +++ b/src/load.c @@ -457,7 +457,7 @@ read_rite_section_irep_file(mrb_state *mrb, FILE *fp) result = sirep + bin_to_uint16(header.sirep); error_exit: mrb_free(mrb, buf); - if (result != MRB_DUMP_OK) { + if (result < MRB_DUMP_OK) { irep_free(sirep, mrb); } return result; diff --git a/tasks/mrbgems_test.rake b/tasks/mrbgems_test.rake index b2d82b6b7..b8d2d75d3 100644 --- a/tasks/mrbgems_test.rake +++ b/tasks/mrbgems_test.rake @@ -23,14 +23,18 @@ MRuby.each_target do unless g.test_rbfiles.empty? f.puts %Q[ mrb_state *mrb2;] if g.test_args.empty? - f.puts %Q[ mrb_value val1, val2, ary1, ary2;] + f.puts %Q[ mrb_value val1, val2, val3, ary1, ary2;] else - f.puts %Q[ mrb_value val1, val2, ary1, ary2, test_args_hash;] + f.puts %Q[ mrb_value val1, val2, val3, ary1, ary2, test_args_hash;] end f.puts %Q[ int ai;] g.test_rbfiles.count.times do |i| f.puts %Q[ ai = mrb_gc_arena_save(mrb);] f.puts %Q[ mrb2 = mrb_open();] + f.puts %Q[ val3 = mrb_gv_get(mrb, mrb_intern(mrb, "$mrbtest_verbose"));] + f.puts %Q[ if (mrb_test(val3)) {] + f.puts %Q[ mrb_gv_set(mrb2, mrb_intern(mrb2, "$mrbtest_verbose"), val3);] + f.puts %Q[ }] f.puts %Q[ mrb_load_irep(mrb2, gem_test_irep_#{g.funcname}_preload);] f.puts %Q[ if (mrb2->exc) {] f.puts %Q[ mrb_p(mrb2, mrb_obj_value(mrb2->exc));] |
