Skip to content

Commit d414072

Browse files
committed
gc_event_freeobj change
1 parent bad80a2 commit d414072

1 file changed

Lines changed: 3 additions & 7 deletions

File tree

gc/default/default.c

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4038,12 +4038,11 @@ gc_sweep_plane(rb_objspace_t *objspace, rb_heap_t *heap, uintptr_t p, bits_t bit
40384038
CHECK(RVALUE_UNCOLLECTIBLE);
40394039
#undef CHECK
40404040
#endif
4041+
if (RB_UNLIKELY(objspace->hook_events & RUBY_INTERNAL_EVENT_FREEOBJ)) {
4042+
rb_gc_event_hook(vp, RUBY_INTERNAL_EVENT_FREEOBJ);
4043+
}
40414044

40424045
if (!rb_gc_obj_needs_cleanup_p(vp)) {
4043-
if (RB_UNLIKELY(objspace->hook_events & RUBY_INTERNAL_EVENT_FREEOBJ)) {
4044-
rb_gc_event_hook(vp, RUBY_INTERNAL_EVENT_FREEOBJ);
4045-
}
4046-
40474046
gc_report(3, objspace, "page_sweep: %s (fast path) added to freelist\n", rb_obj_info(vp));
40484047
RVALUE_AGE_SET_BITMAP(vp, 0);
40494048
heap_page_add_freeobj(objspace, sweep_page, vp, false);
@@ -4052,9 +4051,6 @@ gc_sweep_plane(rb_objspace_t *objspace, rb_heap_t *heap, uintptr_t p, bits_t bit
40524051
}
40534052
else {
40544053
gc_report(2, objspace, "page_sweep: free %p\n", (void *)vp);
4055-
4056-
rb_gc_event_hook(vp, RUBY_INTERNAL_EVENT_FREEOBJ);
4057-
40584054
rb_gc_obj_free_vm_weak_references(vp);
40594055
if (rb_gc_obj_free(objspace, vp)) {
40604056
gc_report(3, objspace, "page_sweep: %s is added to freelist\n", rb_obj_info(vp));

0 commit comments

Comments
 (0)