summaryrefslogtreecommitdiffhomepage
path: root/include/mruby.h
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2019-04-10 06:03:32 +0900
committerGitHub <[email protected]>2019-04-10 06:03:32 +0900
commitd0b30f4ce22e7f9e2396a2159d1a1ff81fcc6ca6 (patch)
treec4670a8bd9ad3aa93a92e3e603f8b26589d7504b /include/mruby.h
parentb433001a1b0676b1bfbd9850c51fd8caed2c8c7b (diff)
parente3beef065c2de80a843f329599b424676d83086c (diff)
downloadmruby-d0b30f4ce22e7f9e2396a2159d1a1ff81fcc6ca6.tar.gz
mruby-d0b30f4ce22e7f9e2396a2159d1a1ff81fcc6ca6.zip
Merge pull request #4367 from shuujii/extract-frozen-checking-to-function
Extract frozen checking to function
Diffstat (limited to 'include/mruby.h')
-rw-r--r--include/mruby.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/include/mruby.h b/include/mruby.h
index df26cdbc2..e567e1da4 100644
--- a/include/mruby.h
+++ b/include/mruby.h
@@ -1140,6 +1140,7 @@ MRB_API mrb_noreturn void mrb_exc_raise(mrb_state *mrb, mrb_value exc);
MRB_API mrb_noreturn void mrb_raise(mrb_state *mrb, struct RClass *c, const char *msg);
MRB_API mrb_noreturn void mrb_raisef(mrb_state *mrb, struct RClass *c, const char *fmt, ...);
MRB_API mrb_noreturn void mrb_name_error(mrb_state *mrb, mrb_sym id, const char *fmt, ...);
+MRB_API mrb_noreturn void mrb_frozen_error(mrb_state *mrb, void *frozen_obj);
MRB_API void mrb_warn(mrb_state *mrb, const char *fmt, ...);
MRB_API mrb_noreturn void mrb_bug(mrb_state *mrb, const char *fmt, ...);
MRB_API void mrb_print_backtrace(mrb_state *mrb);
@@ -1193,6 +1194,11 @@ MRB_API mrb_value mrb_to_int(mrb_state *mrb, mrb_value val);
MRB_API mrb_value mrb_to_str(mrb_state *mrb, mrb_value val);
MRB_API void mrb_check_type(mrb_state *mrb, mrb_value x, enum mrb_vtype t);
+static inline void mrb_check_frozen(mrb_state *mrb, void *o)
+{
+ if (MRB_FROZEN_P((struct RBasic*)o)) mrb_frozen_error(mrb, o);
+}
+
typedef enum call_type {
CALL_PUBLIC,
CALL_FCALL,