diff options
Diffstat (limited to 'mrbgems/mruby-bin-mruby')
| -rw-r--r-- | mrbgems/mruby-bin-mruby/mrbgem.rake | 6 | ||||
| -rw-r--r-- | mrbgems/mruby-bin-mruby/tools/mruby/mruby.c | 12 |
2 files changed, 8 insertions, 10 deletions
diff --git a/mrbgems/mruby-bin-mruby/mrbgem.rake b/mrbgems/mruby-bin-mruby/mrbgem.rake index ba7fad1fa..243b413eb 100644 --- a/mrbgems/mruby-bin-mruby/mrbgem.rake +++ b/mrbgems/mruby-bin-mruby/mrbgem.rake @@ -4,4 +4,10 @@ MRuby::Gem::Specification.new('mruby-bin-mruby') do |spec| spec.summary = 'mruby command' spec.bins = %w(mruby) spec.add_dependency('mruby-compiler', :core => 'mruby-compiler') + spec.add_dependency('mruby-error', :core => 'mruby-error') + + if build.cxx_exception_enabled? + @objs << build.compile_as_cxx("#{spec.dir}/tools/mruby/mruby.c", "#{spec.build_dir}/tools/mruby/mruby.cxx") + @objs.delete_if { |v| v == objfile("#{spec.build_dir}/tools/mruby/mruby") } + end end diff --git a/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c b/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c index d10535140..d0e5dc8dc 100644 --- a/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c +++ b/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c @@ -6,7 +6,6 @@ #include <mruby/compile.h> #include <mruby/dump.h> #include <mruby/variable.h> -#include <mruby/throw.h> #ifdef MRB_DISABLE_STDIO static void @@ -177,8 +176,6 @@ main(int argc, char **argv) mrbc_context *c; mrb_value v; mrb_sym zero_sym; - struct mrb_jmpbuf c_jmp; - int ai; if (mrb == NULL) { fputs("Invalid mrb_state, exiting mruby\n", stderr); @@ -191,10 +188,8 @@ main(int argc, char **argv) usage(argv[0]); return n; } - - ai = mrb_gc_arena_save(mrb); - MRB_TRY(&c_jmp) { - mrb->jmp = &c_jmp; + else { + int ai = mrb_gc_arena_save(mrb); ARGV = mrb_ary_new_capa(mrb, args.argc); for (i = 0; i < args.argc; i++) { char* utf8 = mrb_utf8_from_locale(args.argv[i], -1); @@ -250,9 +245,6 @@ main(int argc, char **argv) printf("Syntax OK\n"); } } - MRB_CATCH(&c_jmp) { /* error */ - } - MRB_END_EXC(&c_jmp); cleanup(mrb, &args); return n == 0 ? EXIT_SUCCESS : EXIT_FAILURE; |
