@@ -1206,8 +1206,8 @@ sweep_lock_lock_impl(rb_nativethread_lock_t *sweep_lock, const char *function, i
12061206static inline void
12071207sweep_lock_unlock (rb_nativethread_lock_t * sweep_lock )
12081208{
1209- GC_ASSERT (sweep_lock_owner == pthread_self ());
12101209#if VM_CHECK_MODE > 0
1210+ GC_ASSERT (sweep_lock_owner == pthread_self ());
12111211 sweep_lock_owner = 0 ;
12121212#endif
12131213 rb_native_mutex_unlock (sweep_lock );
@@ -1225,8 +1225,8 @@ sweep_lock_set_locked(void)
12251225static inline void
12261226sweep_lock_set_unlocked (void )
12271227{
1228- GC_ASSERT (sweep_lock_owner == pthread_self ());
12291228#if VM_CHECK_MODE > 0
1229+ GC_ASSERT (sweep_lock_owner == pthread_self ());
12301230 sweep_lock_owner = 0 ;
12311231#endif
12321232}
@@ -1640,6 +1640,10 @@ check_rvalue_consistency_force(rb_objspace_t *objspace, const VALUE obj, int ter
16401640{
16411641 int err = 0 ;
16421642
1643+
1644+ rb_execution_context_t * ec = rb_current_execution_context (false);
1645+ if (!ec ) return 0 ; // sweep thread
1646+
16431647 int lev = RB_GC_VM_LOCK_NO_BARRIER ();
16441648 {
16451649 if (SPECIAL_CONST_P (obj )) {
@@ -4349,8 +4353,8 @@ static void
43494353debug_free_check (rb_objspace_t * objspace , VALUE vp )
43504354{
43514355 if (!is_full_marking (objspace )) {
4352- if (RVALUE_OLD_P (objspace , vp )) rb_bug ("page_sweep: %p - old while minor GC." , (void * )p );
4353- if (RVALUE_REMEMBERED (objspace , vp )) rb_bug ("page_sweep: %p - remembered." , (void * )p );
4356+ if (RVALUE_OLD_P (objspace , vp )) rb_bug ("page_sweep: %p - old while minor GC." , (void * )vp );
4357+ if (RVALUE_REMEMBERED (objspace , vp )) rb_bug ("page_sweep: %p - remembered." , (void * )vp );
43544358 }
43554359#define CHECK (x ) if (x(objspace, vp) != FALSE) rb_bug("obj_free: " #x "(%s) != FALSE", rb_obj_info(vp))
43564360 CHECK (RVALUE_MARKED );
@@ -4433,6 +4437,7 @@ gc_pre_sweep_plane(rb_objspace_t *objspace, rb_heap_t *heap, struct heap_page *p
44334437 break ;
44344438 }
44354439 switch (imemo_type (vp )) {
4440+ case imemo_callcache :
44364441 case imemo_constcache :
44374442 case imemo_cref :
44384443 case imemo_env :
0 commit comments