From acc114003b4cde1d51ae60de383e58c15566f400 Mon Sep 17 00:00:00 2001 From: KOBAYASHI Shuji Date: Sun, 15 Nov 2020 16:45:03 +0900 Subject: Fix that large integer is not GCed with Word-boxing ### Example (32-bit Word-boxing) ```ruby # example.rb int_count = ObjectSpace.count_objects[:T_INTEGER]||0 int = 1<<30 p (ObjectSpace.count_objects[:T_INTEGER]||0) - int_count int = nil GC.start p (ObjectSpace.count_objects[:T_INTEGER]||0) - int_count ``` #### Before this patch: ```console $ bin/mruby example.rb 1 1 ``` #### After this patch: ```console $ bin/mruby example.rb 1 0 ``` --- src/gc.c | 1 - 1 file changed, 1 deletion(-) (limited to 'src') diff --git a/src/gc.c b/src/gc.c index 0f2c3bfab..58fdf9434 100644 --- a/src/gc.c +++ b/src/gc.c @@ -782,7 +782,6 @@ obj_free(mrb_state *mrb, struct RBasic *obj, int end) switch (obj->tt) { /* immediate - no mark */ case MRB_TT_TRUE: - case MRB_TT_INTEGER: case MRB_TT_SYMBOL: /* cannot happen */ return; -- cgit v1.2.3