Skip to content

Commit ee8eaef

Browse files
authored
Merge pull request #66 from ruby/replace-ruby-assert-mmtk-assert
Replace RUBY_ASSERT with MMTK_ASSERT
2 parents 86444e5 + e2a89d5 commit ee8eaef

1 file changed

Lines changed: 14 additions & 11 deletions

File tree

gc/mmtk/mmtk.c

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -348,11 +348,7 @@ rb_mmtk_vm_live_bytes(void)
348348
static void
349349
make_final_job(struct objspace *objspace, VALUE obj, VALUE table)
350350
{
351-
RUBY_ASSERT(RB_FL_TEST(obj, RUBY_FL_FINALIZE));
352-
RUBY_ASSERT(mmtk_is_reachable((MMTk_ObjectReference)table));
353-
RUBY_ASSERT(RB_BUILTIN_TYPE(table) == T_ARRAY);
354-
355-
RB_FL_UNSET(obj, RUBY_FL_FINALIZE);
351+
MMTK_ASSERT(RB_BUILTIN_TYPE(table) == T_ARRAY);
356352

357353
struct MMTk_final_job *job = xmalloc(sizeof(struct MMTk_final_job));
358354
job->next = objspace->finalizer_jobs;
@@ -365,15 +361,16 @@ make_final_job(struct objspace *objspace, VALUE obj, VALUE table)
365361
static int
366362
rb_mmtk_update_finalizer_table_i(st_data_t key, st_data_t value, st_data_t data, int error)
367363
{
368-
RUBY_ASSERT(RB_FL_TEST(key, RUBY_FL_FINALIZE));
369-
RUBY_ASSERT(mmtk_is_reachable((MMTk_ObjectReference)value));
370-
RUBY_ASSERT(RB_BUILTIN_TYPE(value) == T_ARRAY);
364+
MMTK_ASSERT(mmtk_is_reachable((MMTk_ObjectReference)value));
365+
MMTK_ASSERT(RB_BUILTIN_TYPE(value) == T_ARRAY);
371366

372367
struct objspace *objspace = (struct objspace *)data;
373368

374369
if (mmtk_is_reachable((MMTk_ObjectReference)key)) {
375370
VALUE new_key_location = rb_mmtk_call_object_closure((VALUE)key, false);
376371

372+
MMTK_ASSERT(RB_FL_TEST(new_key_location, RUBY_FL_FINALIZE));
373+
377374
if (new_key_location != key) {
378375
return ST_REPLACE;
379376
}
@@ -445,7 +442,7 @@ rb_mmtk_update_global_tables_replace_i(VALUE *ptr, void *data)
445442
static void
446443
rb_mmtk_update_global_tables(int table)
447444
{
448-
RUBY_ASSERT(table < RB_GC_VM_WEAK_TABLE_COUNT);
445+
MMTK_ASSERT(table < RB_GC_VM_WEAK_TABLE_COUNT);
449446

450447
// TODO: set weak_only to true for non-moving GC
451448
rb_gc_vm_weak_table_foreach(
@@ -606,7 +603,13 @@ rb_gc_impl_ractor_cache_free(void *objspace_ptr, void *cache_ptr)
606603

607604
ccan_list_del(&cache->list_node);
608605

609-
RUBY_ASSERT(objspace->live_ractor_cache_count > 1);
606+
if (ruby_free_at_exit_p()) {
607+
MMTK_ASSERT(objspace->live_ractor_cache_count > 0);
608+
}
609+
else {
610+
MMTK_ASSERT(objspace->live_ractor_cache_count > 1);
611+
}
612+
610613
objspace->live_ractor_cache_count--;
611614

612615
mmtk_destroy_mutator(cache->mutator);
@@ -1502,7 +1505,7 @@ rb_gc_impl_object_metadata(void *objspace_ptr, VALUE obj)
15021505
size_t n = 0;
15031506

15041507
#define SET_ENTRY(na, v) do { \
1505-
RUBY_ASSERT(n <= RB_GC_OBJECT_METADATA_ENTRY_COUNT); \
1508+
MMTK_ASSERT(n <= RB_GC_OBJECT_METADATA_ENTRY_COUNT); \
15061509
object_metadata_entries[n].name = ID_##na; \
15071510
object_metadata_entries[n].val = v; \
15081511
n++; \

0 commit comments

Comments
 (0)