From 2ddfd50df37a49d7300e947c39cb053340b14624 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Tue, 26 Jan 2021 11:13:06 +0900 Subject: Use `MRB_SYM()` for error class retrieval; ref #5277 Note that `MRB_SYM()` is only available when `mruby/presym.h` is included. Use `mrb_intern_lit()` otherwise. --- include/mruby.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'include/mruby.h') 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")) -- cgit v1.2.3