diff options
Diffstat (limited to 'src/gc.c')
| -rw-r--r-- | src/gc.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -114,7 +114,9 @@ typedef struct { struct RException exc; struct RBreak brk; #ifdef MRB_WORD_BOXING +#ifndef MRB_WITHOUT_FLOAT struct RFloat floatv; +#endif struct RCptr cptr; #endif } as; @@ -741,12 +743,14 @@ obj_free(mrb_state *mrb, struct RBasic *obj, int end) /* cannot happen */ return; +#ifndef MRB_WITHOUT_FLOAT case MRB_TT_FLOAT: #ifdef MRB_WORD_BOXING break; #else return; #endif +#endif case MRB_TT_OBJECT: mrb_gc_free_iv(mrb, (struct RObject*)obj); @@ -877,7 +881,9 @@ root_scan_phase(mrb_state *mrb, mrb_gc *gc) mrb_gc_mark(mrb, (struct RBasic*)mrb->hash_class); mrb_gc_mark(mrb, (struct RBasic*)mrb->range_class); +#ifndef MRB_WITHOUT_FLOAT mrb_gc_mark(mrb, (struct RBasic*)mrb->float_class); +#endif mrb_gc_mark(mrb, (struct RBasic*)mrb->fixnum_class); mrb_gc_mark(mrb, (struct RBasic*)mrb->true_class); mrb_gc_mark(mrb, (struct RBasic*)mrb->false_class); |
