summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Barrié <etienne.barrie@gmail.com>2025-11-22 14:57:30 +0100
committergit <svn-admin@ruby-lang.org>2025-11-26 14:47:27 +0000
commitab3b79ea3db7779a9ee9eb6e39226d23b50fd012 (patch)
tree4384cfd0534e90c09c07edbb68da9c5d577e099e
parent98a9667736f56336c920770095f9c367add2257b (diff)
[ruby/json] Don't copy JSON_Generator_State in generate_new
Now that the state isn't mutated in generate_new, we no longer need to copy the struct, we can just use it. https://github.com/ruby/json/commit/d7964f8892
-rw-r--r--ext/json/generator/generator.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/ext/json/generator/generator.c b/ext/json/generator/generator.c
index 8f90806259..32a9b48513 100644
--- a/ext/json/generator/generator.c
+++ b/ext/json/generator/generator.c
@@ -1539,12 +1539,6 @@ static VALUE cState_generate_new(int argc, VALUE *argv, VALUE self)
GET_STATE(self);
- JSON_Generator_State new_state;
- MEMCPY(&new_state, state, JSON_Generator_State, 1);
-
- // FIXME: depth shouldn't be part of JSON_Generator_State, as that prevents it from being used concurrently.
- new_state.depth = 0;
-
char stack_buffer[FBUFFER_STACK_SIZE];
FBuffer buffer = {
.io = RTEST(io) ? io : Qfalse,
@@ -1554,8 +1548,8 @@ static VALUE cState_generate_new(int argc, VALUE *argv, VALUE self)
struct generate_json_data data = {
.buffer = &buffer,
.vstate = Qfalse,
- .state = &new_state,
- .depth = new_state.depth,
+ .state = state,
+ .depth = 0,
.obj = obj,
.func = generate_json
};