diff options
| author | Étienne Barrié <etienne.barrie@gmail.com> | 2025-11-22 14:57:30 +0100 |
|---|---|---|
| committer | git <svn-admin@ruby-lang.org> | 2025-11-26 14:47:27 +0000 |
| commit | ab3b79ea3db7779a9ee9eb6e39226d23b50fd012 (patch) | |
| tree | 4384cfd0534e90c09c07edbb68da9c5d577e099e | |
| parent | 98a9667736f56336c920770095f9c367add2257b (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.c | 10 |
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 }; |
