@@ -4411,13 +4411,7 @@ gc_pre_sweep_plane(rb_objspace_t *objspace, rb_heap_t *heap, struct heap_page *p
44114411 dfree = RDATA (vp )-> dfree ;
44124412 }
44134413 if (!dfree || dfree == RUBY_DEFAULT_FREE || free_immediately ) {
4414- if (rb_gc_obj_has_blacklisted_vm_weak_references (vp )) {
4415- sweep_in_ruby_thread (objspace , page , vp );
4416- break ;
4417- }
4418- else {
4419- goto free ;
4420- }
4414+ goto free ;
44214415 }
44224416 else {
44234417 sweep_in_ruby_thread (objspace , page , vp );
@@ -4427,10 +4421,6 @@ gc_pre_sweep_plane(rb_objspace_t *objspace, rb_heap_t *heap, struct heap_page *p
44274421 }
44284422 case T_IMEMO : {
44294423 debug_free_check (objspace , vp );
4430- if (rb_gc_obj_has_blacklisted_vm_weak_references (vp )) {
4431- sweep_in_ruby_thread (objspace , page , vp );
4432- break ;
4433- }
44344424 switch (imemo_type (vp )) {
44354425 case imemo_callcache :
44364426 case imemo_constcache :
@@ -4442,10 +4432,11 @@ gc_pre_sweep_plane(rb_objspace_t *objspace, rb_heap_t *heap, struct heap_page *p
44424432 case imemo_throw_data :
44434433 case imemo_tmpbuf :
44444434 case imemo_fields :
4435+ case imemo_iseq :
44454436 goto free ;
44464437 case imemo_callinfo :
44474438 case imemo_ment :
4448- case imemo_iseq :
4439+ // blacklisted due to vm weak references
44494440 sweep_in_ruby_thread (objspace , page , vp );
44504441 break ;
44514442 default :
@@ -4467,14 +4458,7 @@ gc_pre_sweep_plane(rb_objspace_t *objspace, rb_heap_t *heap, struct heap_page *p
44674458 case T_REGEXP :
44684459 case T_FILE : {
44694460 debug_free_check (objspace , vp );
4470- if (rb_gc_obj_has_blacklisted_vm_weak_references (vp )) {
4471- sweep_in_ruby_thread (objspace , page , vp );
4472- break ;
4473- }
4474- else {
4475- goto free ;
4476- }
4477- break ;
4461+ goto free ;
44784462 }
44794463 case T_CLASS :
44804464 case T_MODULE :
0 commit comments