summaryrefslogtreecommitdiffhomepage
path: root/include/mruby.h
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2021-01-26 11:13:06 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2021-01-26 11:13:06 +0900
commit2ddfd50df37a49d7300e947c39cb053340b14624 (patch)
tree7ce9ea7cc2788abd4bf9debb9f347d27232496e4 /include/mruby.h
parent17ecf145111f903d62952fb1b557ea60471d7408 (diff)
downloadmruby-2ddfd50df37a49d7300e947c39cb053340b14624.tar.gz
mruby-2ddfd50df37a49d7300e947c39cb053340b14624.zip
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.
Diffstat (limited to 'include/mruby.h')
-rw-r--r--include/mruby.h7
1 files changed, 7 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"))