[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]