summaryrefslogtreecommitdiff
path: root/gc.c
diff options
context:
space:
mode:
authorJean Boussier <jean.boussier@gmail.com>2023-02-07 15:21:40 +0100
committerJean Boussier <jean.boussier@gmail.com>2023-02-07 15:22:06 +0100
commit6eae8e5f514db716e52ad06a2ac97e2cc3910d83 (patch)
treeb74f0c03791f58573397f98d5c0d3d36c8702382 /gc.c
parent046807102f043cac3717397eecaf87bdb11e9015 (diff)
Revert "Consider DATA objects without a mark function as protected"
This reverts commit 6e4c242130965de1cf00703c99f8821b0bd19e5b.
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/7262
Diffstat (limited to 'gc.c')
-rw-r--r--gc.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/gc.c b/gc.c
index cf87a74bdb..3baed251f4 100644
--- a/gc.c
+++ b/gc.c
@@ -3110,7 +3110,7 @@ rb_data_object_wrap(VALUE klass, void *datap, RUBY_DATA_FUNC dmark, RUBY_DATA_FU
{
RUBY_ASSERT_ALWAYS(dfree != (RUBY_DATA_FUNC)1);
if (klass) rb_data_object_check(klass);
- return newobj_of(klass, T_DATA, (VALUE)dmark, (VALUE)dfree, (VALUE)datap, !dmark, sizeof(struct RTypedData));
+ return newobj_of(klass, T_DATA, (VALUE)dmark, (VALUE)dfree, (VALUE)datap, FALSE, sizeof(struct RTypedData));
}
VALUE
@@ -3126,8 +3126,7 @@ rb_data_typed_object_wrap(VALUE klass, void *datap, const rb_data_type_t *type)
{
RBIMPL_NONNULL_ARG(type);
if (klass) rb_data_object_check(klass);
- bool wb_protected = (type->flags & RUBY_FL_WB_PROTECTED) || !type->function.dmark;
- return newobj_of(klass, T_DATA, (VALUE)type, (VALUE)1, (VALUE)datap, wb_protected, sizeof(struct RTypedData));
+ return newobj_of(klass, T_DATA, (VALUE)type, (VALUE)1, (VALUE)datap, type->flags & RUBY_FL_WB_PROTECTED, sizeof(struct RTypedData));
}
VALUE