diff options
| author | Peter Zhu <peter@peterzhu.ca> | 2024-03-01 16:45:50 -0500 |
|---|---|---|
| committer | Peter Zhu <peter@peterzhu.ca> | 2024-03-11 09:30:15 -0400 |
| commit | 9f31577987f0f83581a8283c3fc677fae225ee4f (patch) | |
| tree | 51c43f5ce5157f6b4cc624a5c7d92e4cf92090c1 | |
| parent | 08961ce8e31487b31d19d4f66c6ef1aba5c7cd30 (diff) | |
Reuse rb_gc_writebarrier_unprotect in rb_copy_wb_protected_attribute
| -rw-r--r-- | gc.c | 14 |
1 files changed, 2 insertions, 12 deletions
@@ -8692,19 +8692,9 @@ rb_gc_writebarrier_remember(VALUE obj) void rb_copy_wb_protected_attribute(VALUE dest, VALUE obj) { - rb_objspace_t *objspace = &rb_objspace; - - if (RVALUE_WB_UNPROTECTED(obj) && !RVALUE_WB_UNPROTECTED(dest)) { - if (!RVALUE_OLD_P(dest)) { - MARK_IN_BITMAP(GET_HEAP_WB_UNPROTECTED_BITS(dest), dest); - RVALUE_AGE_RESET(dest); - } - else { - RVALUE_DEMOTE(objspace, dest); - } + if (RVALUE_WB_UNPROTECTED(obj)) { + rb_gc_writebarrier_unprotect(dest); } - - check_rvalue_consistency(dest); } VALUE |
