diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2019-04-10 06:03:32 +0900 |
|---|---|---|
| committer | GitHub <[email protected]> | 2019-04-10 06:03:32 +0900 |
| commit | d0b30f4ce22e7f9e2396a2159d1a1ff81fcc6ca6 (patch) | |
| tree | c4670a8bd9ad3aa93a92e3e603f8b26589d7504b /include/mruby.h | |
| parent | b433001a1b0676b1bfbd9850c51fd8caed2c8c7b (diff) | |
| parent | e3beef065c2de80a843f329599b424676d83086c (diff) | |
| download | mruby-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.h | 6 |
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, |
