Skip to content

Commit 7a2ce88

Browse files
committedJun 21, 2024
rb_objspace_call_finalizer_i
1 parent c5158ef commit 7a2ce88

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed
 

‎gc.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -3071,7 +3071,7 @@ memsize_deprecated_rdata_object(const void *ptr)
30713071

30723072
#define DEPRECATED_DATA_FREE RBIMPL_DATA_FUNC(-3)
30733073

3074-
const rb_data_type_t deprecated_rdata_type = {
3074+
const rb_data_type_t ruby_deprecated_rdata_type = {
30753075
.wrap_struct_name = "RDATA(deprecated)",
30763076
.function = {
30773077
.dmark = mark_deprecated_rdata_object,
@@ -3086,7 +3086,7 @@ rb_data_object_wrap(VALUE klass, void *datap, RUBY_DATA_FUNC dmark, RUBY_DATA_FU
30863086
RUBY_ASSERT_ALWAYS(dfree != (RUBY_DATA_FUNC)1);
30873087
if (klass) rb_data_object_check(klass);
30883088

3089-
VALUE obj = rb_data_typed_object_zalloc(klass, sizeof(struct RData), &deprecated_rdata_type);
3089+
VALUE obj = rb_data_typed_object_zalloc(klass, sizeof(struct RData), &ruby_deprecated_rdata_type);
30903090

30913091
struct RData *rdata = (struct RData *)obj;
30923092
rdata->dmark = dmark;
@@ -4363,7 +4363,7 @@ rb_objspace_call_finalizer_i(VALUE obj, void *data)
43634363

43644364
switch (BUILTIN_TYPE(obj)) {
43654365
case T_DATA:
4366-
if (!rb_free_at_exit && (!DATA_PTR(obj) || !RDATA(obj)->dfree)) break;
4366+
if (!rb_free_at_exit && (!RTYPEDDATA_GET_DATA(obj) || !RANY(obj)->as.typeddata.type->function.dfree)) break;
43674367
if (rb_obj_is_thread(obj)) break;
43684368
if (rb_obj_is_mutex(obj)) break;
43694369
if (rb_obj_is_fiber(obj)) break;

‎include/ruby/internal/core/rtypeddata.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -523,7 +523,6 @@ RBIMPL_SYMBOL_EXPORT_END()
523523
#define TypedData_Get_Struct(obj,type,data_type,sval) \
524524
((sval) = RBIMPL_CAST((type *)rb_check_typeddata((obj), (data_type))))
525525

526-
extern const rb_data_type_t deprecated_rdata_type;
527526

528527
RBIMPL_ATTR_PURE()
529528
RBIMPL_ATTR_ARTIFICIAL()
@@ -541,7 +540,8 @@ RBIMPL_ATTR_ARTIFICIAL()
541540
static inline bool
542541
rbimpl_rtypeddata_p(VALUE obj)
543542
{
544-
return RTYPEDDATA(obj)->type != &deprecated_rdata_type;
543+
extern const rb_data_type_t ruby_deprecated_rdata_type;
544+
return RTYPEDDATA(obj)->type != &ruby_deprecated_rdata_type;
545545
}
546546

547547
RBIMPL_ATTR_PURE_UNLESS_DEBUG()

0 commit comments

Comments
 (0)
Failed to load comments.