diff options
| author | KOBAYASHI Shuji <[email protected]> | 2019-04-09 18:23:11 +0900 |
|---|---|---|
| committer | KOBAYASHI Shuji <[email protected]> | 2019-04-09 18:23:11 +0900 |
| commit | e3beef065c2de80a843f329599b424676d83086c (patch) | |
| tree | 0c54fbf5e4f25febbc3bcf547427ba9c238b54ce /include/mruby.h | |
| parent | ec1688807ef301483321919778b2ccb578822767 (diff) | |
| download | mruby-e3beef065c2de80a843f329599b424676d83086c.tar.gz mruby-e3beef065c2de80a843f329599b424676d83086c.zip | |
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 5b0d84cd3..939601b4d 100644 --- a/include/mruby.h +++ b/include/mruby.h @@ -1143,6 +1143,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); @@ -1196,6 +1197,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, |
