@@ -348,11 +348,8 @@ rb_mmtk_vm_live_bytes(void)
348348static void
349349make_final_job (struct objspace * objspace , VALUE obj , VALUE table )
350350{
351- MMTK_ASSERT (RB_FL_TEST (obj , RUBY_FL_FINALIZE ));
352351 MMTK_ASSERT (RB_BUILTIN_TYPE (table ) == T_ARRAY );
353352
354- RB_FL_UNSET (obj , RUBY_FL_FINALIZE );
355-
356353 struct MMTk_final_job * job = xmalloc (sizeof (struct MMTk_final_job ));
357354 job -> next = objspace -> finalizer_jobs ;
358355 job -> kind = MMTK_FINAL_JOB_FINALIZE ;
@@ -364,7 +361,6 @@ make_final_job(struct objspace *objspace, VALUE obj, VALUE table)
364361static int
365362rb_mmtk_update_finalizer_table_i (st_data_t key , st_data_t value , st_data_t data , int error )
366363{
367- MMTK_ASSERT (RB_FL_TEST (key , RUBY_FL_FINALIZE ));
368364 MMTK_ASSERT (mmtk_is_reachable ((MMTk_ObjectReference )value ));
369365 MMTK_ASSERT (RB_BUILTIN_TYPE (value ) == T_ARRAY );
370366
@@ -373,6 +369,8 @@ rb_mmtk_update_finalizer_table_i(st_data_t key, st_data_t value, st_data_t data,
373369 if (mmtk_is_reachable ((MMTk_ObjectReference )key )) {
374370 VALUE new_key_location = rb_mmtk_call_object_closure ((VALUE )key , false);
375371
372+ MMTK_ASSERT (RB_FL_TEST (new_key_location , RUBY_FL_FINALIZE ));
373+
376374 if (new_key_location != key ) {
377375 return ST_REPLACE ;
378376 }
0 commit comments