diff options
| author | take_cheeze <[email protected]> | 2014-07-21 23:09:13 +0900 |
|---|---|---|
| committer | take_cheeze <[email protected]> | 2014-07-21 23:09:13 +0900 |
| commit | 3c9660257464bb78a5b094e3f7fb1621bb9577ba (patch) | |
| tree | 8ff322acab800bee8a5ee312a6c63112db34cbdf /src/gc.c | |
| parent | 4cc9e5d8b17acbebadad1508300f092db775f361 (diff) | |
| download | mruby-3c9660257464bb78a5b094e3f7fb1621bb9577ba.tar.gz mruby-3c9660257464bb78a5b094e3f7fb1621bb9577ba.zip | |
Use MRB_TT_EXCEPTION in exception object.
Diffstat (limited to 'src/gc.c')
| -rw-r--r-- | src/gc.c | 5 |
1 files changed, 5 insertions, 0 deletions
@@ -16,6 +16,7 @@ #include "mruby/string.h" #include "mruby/variable.h" #include "mruby/gc.h" +#include "mruby/error.h" /* = Tri-color Incremental Garbage Collection @@ -107,6 +108,7 @@ typedef struct { struct RRange range; struct RData data; struct RProc proc; + struct RException exc; #ifdef MRB_WORD_BOXING struct RFloat floatv; struct RCptr cptr; @@ -513,6 +515,7 @@ gc_mark_children(mrb_state *mrb, struct RBasic *obj) case MRB_TT_OBJECT: case MRB_TT_DATA: + case MRB_TT_EXCEPTION: mrb_gc_mark_iv(mrb, (struct RObject*)obj); break; @@ -612,6 +615,7 @@ obj_free(mrb_state *mrb, struct RBasic *obj) #endif case MRB_TT_OBJECT: + case MRB_TT_EXCEPTION: mrb_gc_free_iv(mrb, (struct RObject*)obj); break; @@ -747,6 +751,7 @@ gc_gray_mark(mrb_state *mrb, struct RBasic *obj) case MRB_TT_OBJECT: case MRB_TT_DATA: + case MRB_TT_EXCEPTION: children += mrb_gc_mark_iv_size(mrb, (struct RObject*)obj); break; |
