diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/mruby.h | 7 | ||||
| -rw-r--r-- | include/mruby/presym/enable.h | 4 |
2 files changed, 11 insertions, 0 deletions
diff --git a/include/mruby.h b/include/mruby.h index aa6d2ab65..b1cefb27b 100644 --- a/include/mruby.h +++ b/include/mruby.h @@ -1303,6 +1303,13 @@ MRB_API mrb_value mrb_vformat(mrb_state *mrb, const char *format, va_list ap); + those E_* macros requires mrb_state* variable named mrb. + exception objects obtained from those macros are local to mrb */ +#ifdef MRB_SYM +/* mruby/presym.h is included earlier */ +# define MRB_E_SYM(sym) MRB_SYM(sym) +#else +# define MRB_E_SYM(sym) mrb_intern_lit(mrb, #sym) +#endif + #define E_RUNTIME_ERROR mrb_exc_get_id(mrb, mrb_intern_lit(mrb, "RuntimeError")) #define E_TYPE_ERROR mrb_exc_get_id(mrb, mrb_intern_lit(mrb, "TypeError")) #define E_ZERODIV_ERROR mrb_exc_get_id(mrb, mrb_intern_lit(mrb, "ZeroDivisionError")) diff --git a/include/mruby/presym/enable.h b/include/mruby/presym/enable.h index ddeb17e32..a5a4f2efb 100644 --- a/include/mruby/presym/enable.h +++ b/include/mruby/presym/enable.h @@ -38,4 +38,8 @@ enum mruby_presym { static const mrb_sym name[] = {__VA_ARGS__}; \ static void init_##name(mrb_state *mrb) {} +/* use MRB_SYM() for E_RUNTIME_ERROR etc. */ +# undef MRB_E_SYM +# define MRB_E_SYM(sym) MRB_SYM(sym) + #endif /* MRUBY_PRESYM_ENABLE_H */ |
