Skip to content

Commit 7cf6cc8

Browse files
committed
Register imemo_ment as a pinning object
It sometimes pins itself when it is in the overloaded_cme table.
1 parent b27d935 commit 7cf6cc8

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

vm_method.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1119,6 +1119,10 @@ rb_method_entry_alloc(ID called_id, VALUE owner, VALUE defined_class, rb_method_
11191119
VM_ASSERT_TYPE2(defined_class, T_CLASS, T_ICLASS);
11201120
}
11211121
rb_method_entry_t *me = SHAREABLE_IMEMO_NEW(rb_method_entry_t, imemo_ment, defined_class);
1122+
1123+
// mark_and_move_method_entry pins itself when it is in the overloaded_cme table
1124+
rb_gc_register_pinning_obj((VALUE)me);
1125+
11221126
*((rb_method_definition_t **)&me->def) = def;
11231127
me->called_id = called_id;
11241128
me->owner = owner;

0 commit comments

Comments
 (0)