summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Zhu <peter@peterzhu.ca>2024-03-01 16:45:50 -0500
committerPeter Zhu <peter@peterzhu.ca>2024-03-11 09:30:15 -0400
commit9f31577987f0f83581a8283c3fc677fae225ee4f (patch)
tree51c43f5ce5157f6b4cc624a5c7d92e4cf92090c1
parent08961ce8e31487b31d19d4f66c6ef1aba5c7cd30 (diff)
Reuse rb_gc_writebarrier_unprotect in rb_copy_wb_protected_attribute
-rw-r--r--gc.c14
1 files changed, 2 insertions, 12 deletions
diff --git a/gc.c b/gc.c
index c5d4acc254..5f6c751efc 100644
--- a/gc.c
+++ b/gc.c
@@ -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