@@ -314,7 +314,7 @@ static const rb_data_type_t JSON_Parser_rvalue_stack_type = {
314314 },
315315 // We deliberately don't declare rvalue_stack as RUBY_TYPED_WB_PROTECTED
316316 // because it churns a lot of values so trigering write barriers every time is very costly.
317- .flags = RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_EMBEDDABLE ,
317+ .flags = RUBY_TYPED_THREAD_SAFE_FREE | RUBY_TYPED_EMBEDDABLE ,
318318};
319319
320320static rvalue_stack * rvalue_stack_spill (rvalue_stack * old_stack , VALUE * handle , rvalue_stack * * stack_ref )
@@ -511,7 +511,7 @@ static const rb_data_type_t JSON_Parser_frame_stack_type = {
511511 .dfree = json_frame_stack_free ,
512512 .dsize = json_frame_stack_memsize ,
513513 },
514- .flags = RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_WB_PROTECTED | RUBY_TYPED_EMBEDDABLE ,
514+ .flags = RUBY_TYPED_THREAD_SAFE_FREE | RUBY_TYPED_WB_PROTECTED | RUBY_TYPED_EMBEDDABLE ,
515515};
516516
517517static json_frame_stack * json_frame_stack_spill (json_frame_stack * old_stack , VALUE * handle , json_frame_stack * * stack_ref )
@@ -2180,7 +2180,7 @@ static const rb_data_type_t JSON_ParserConfig_type = {
21802180 .dsize = JSON_ParserConfig_memsize ,
21812181 .dcompact = JSON_ParserConfig_compact ,
21822182 },
2183- .flags = RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_WB_PROTECTED | RUBY_TYPED_FROZEN_SHAREABLE | RUBY_TYPED_EMBEDDABLE ,
2183+ .flags = RUBY_TYPED_THREAD_SAFE_FREE | RUBY_TYPED_WB_PROTECTED | RUBY_TYPED_FROZEN_SHAREABLE | RUBY_TYPED_EMBEDDABLE ,
21842184};
21852185
21862186static VALUE cJSON_parser_s_allocate (VALUE klass )
@@ -2265,7 +2265,7 @@ static const rb_data_type_t JSON_ResumableParser_type = {
22652265 // RUBY_TYPED_WB_PROTECTED is deliberately not declared because
22662266 // this is a superset of JSON_Parser_rvalue_stack_type, so we'd need
22672267 // to trigger a lot of write barriers.
2268- .flags = RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_EMBEDDABLE ,
2268+ .flags = RUBY_TYPED_THREAD_SAFE_FREE | RUBY_TYPED_EMBEDDABLE ,
22692269};
22702270
22712271static VALUE cResumableParser_allocate (VALUE klass )
0 commit comments