ruby-changes:71591
From: Matt <ko1@a...>
Date: Fri, 1 Apr 2022 21:46:15 +0900 (JST)
Subject: [ruby-changes:71591] d8352ff3ac (master): [Feature #18619] remove FL_FROM_FREELIST
https://git.ruby-lang.org/ruby.git/commit/?id=d8352ff3ac From d8352ff3ac6960f029e3c9253f527f6e4a845645 Mon Sep 17 00:00:00 2001 From: Matt Valentine-House <matt@e...> Date: Mon, 21 Mar 2022 20:46:58 +0000 Subject: [Feature #18619] remove FL_FROM_FREELIST --- gc.c | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/gc.c b/gc.c index 66e04d4a21..f3a25aa105 100644 --- a/gc.c +++ b/gc.c @@ -564,8 +564,6 @@ typedef struct gc_profile_record { https://github.com/ruby/ruby/blob/trunk/gc.c#L564 #endif } gc_profile_record; -#define FL_FROM_FREELIST FL_USER0 - struct RMoved { VALUE flags; VALUE dummy; @@ -5034,7 +5032,6 @@ try_move(rb_objspace_t *objspace, rb_heap_t *heap, struct heap_page *free_page, https://github.com/ruby/ruby/blob/trunk/gc.c#L5032 gc_move(objspace, src, dest, free_page->slot_size); gc_pin(objspace, src); - FL_SET(src, FL_FROM_FREELIST); free_page->free_slots--; } @@ -5311,12 +5308,7 @@ gc_sweep_plane(rb_objspace_t *objspace, rb_heap_t *heap, uintptr_t p, bits_t bit https://github.com/ruby/ruby/blob/trunk/gc.c#L5308 rb_bug("T_MOVED shouldn't be seen until compaction is finished\n"); } gc_report(3, objspace, "page_sweep: %s is added to freelist\n", obj_info(vp)); - if (FL_TEST(vp, FL_FROM_FREELIST)) { - ctx->empty_slots++; - } - else { - ctx->freed_slots++; - } + ctx->empty_slots++; heap_page_add_freeobj(objspace, sweep_page, vp); break; case T_ZOMBIE: @@ -5764,7 +5756,6 @@ invalidate_moved_plane(rb_objspace_t *objspace, struct heap_page *page, uintptr_ https://github.com/ruby/ruby/blob/trunk/gc.c#L5756 CLEAR_IN_BITMAP(GET_HEAP_PINNED_BITS(forwarding_object), forwarding_object); - bool from_freelist = FL_TEST_RAW(forwarding_object, FL_FROM_FREELIST); object = rb_gc_location(forwarding_object); gc_move(objspace, object, forwarding_object, page->slot_size); @@ -5772,9 +5763,6 @@ invalidate_moved_plane(rb_objspace_t *objspace, struct heap_page *page, uintptr_ https://github.com/ruby/ruby/blob/trunk/gc.c#L5763 * is the free slot for the original page */ struct heap_page *orig_page = GET_HEAP_PAGE(object); orig_page->free_slots++; - if (!from_freelist) { - objspace->profile.total_freed_objects++; - } heap_page_add_freeobj(objspace, orig_page, object); GC_ASSERT(MARKED_IN_BITMAP(GET_HEAP_MARK_BITS(forwarding_object), forwarding_object)); -- cgit v1.2.1 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/