diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-11-04 11:49:25 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-11-04 11:49:25 +0900 |
| commit | de2363a9f0c7d368ee9002f86931d124e644a243 (patch) | |
| tree | 2112928a80786a109ecac4b3ce200f45ac75e2cb /src/gc.c | |
| parent | 388d26d77027feaa3e107abf7209e2681868bbe6 (diff) | |
| parent | 625f9f6fa314872968632c5adbee7fb3823268b8 (diff) | |
| download | mruby-de2363a9f0c7d368ee9002f86931d124e644a243.tar.gz mruby-de2363a9f0c7d368ee9002f86931d124e644a243.zip | |
Merge branch 'mrb_without_float' of https://github.com/pandax381/mruby into pandax381-mrb_without_float
Diffstat (limited to 'src/gc.c')
| -rw-r--r-- | src/gc.c | 8 |
1 files changed, 7 insertions, 1 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; @@ -412,7 +414,7 @@ gc_protect(mrb_state *mrb, mrb_gc *gc, struct RBasic *p) #else if (gc->arena_idx >= gc->arena_capa) { /* extend arena */ - gc->arena_capa = (int)(gc->arena_capa * 1.5); + gc->arena_capa = (int)(gc->arena_capa * 3 / 2); gc->arena = (struct RBasic**)mrb_realloc(mrb, gc->arena, sizeof(struct RBasic*)*gc->arena_capa); } #endif @@ -735,12 +737,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); @@ -871,7 +875,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); |
