summaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2014-07-22 15:35:16 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2014-07-22 15:35:16 +0900
commit6d742ef93aaa2cb6fe682f05c7e04cfb9be11353 (patch)
tree87f12b0e80d96436842a6dec3b09d83a6beea5f0 /include
parent4b691212846930ccc501e9050589a495901cc25c (diff)
parent3c9660257464bb78a5b094e3f7fb1621bb9577ba (diff)
downloadmruby-6d742ef93aaa2cb6fe682f05c7e04cfb9be11353.tar.gz
mruby-6d742ef93aaa2cb6fe682f05c7e04cfb9be11353.zip
Merge pull request #2482 from take-cheeze/exc_tt
Use MRB_TT_EXCEPTION in exception object.
Diffstat (limited to 'include')
-rw-r--r--include/mruby/error.h7
-rw-r--r--include/mruby/value.h1
2 files changed, 8 insertions, 0 deletions
diff --git a/include/mruby/error.h b/include/mruby/error.h
index 4d37f1701..210ae3449 100644
--- a/include/mruby/error.h
+++ b/include/mruby/error.h
@@ -11,6 +11,13 @@
extern "C" {
#endif
+struct RException {
+ MRB_OBJECT_HEADER;
+ struct iv_tbl *iv;
+};
+
+#define mrb_exc_ptr(v) ((struct RException*)mrb_ptr(v))
+
void mrb_sys_fail(mrb_state *mrb, const char *mesg);
mrb_value mrb_exc_new_str(mrb_state *mrb, struct RClass* c, mrb_value str);
#define mrb_exc_new_str_lit(mrb, c, lit) mrb_exc_new_str(mrb, c, mrb_str_new_lit(mrb, lit))
diff --git a/include/mruby/value.h b/include/mruby/value.h
index f16fa20a6..20b6008c4 100644
--- a/include/mruby/value.h
+++ b/include/mruby/value.h
@@ -122,6 +122,7 @@ enum mrb_vtype {
#define mrb_string_p(o) (mrb_type(o) == MRB_TT_STRING)
#define mrb_hash_p(o) (mrb_type(o) == MRB_TT_HASH)
#define mrb_cptr_p(o) (mrb_type(o) == MRB_TT_CPTR)
+#define mrb_exception_p(o) (mrb_type(o) == MRB_TT_EXCEPTION)
#define mrb_test(o) mrb_bool(o)
mrb_bool mrb_regexp_p(struct mrb_state*, mrb_value);