diff --git a/ext/json/ext/generator/generator.c b/ext/json/ext/generator/generator.c index 6ece9f05..58d22ea7 100644 --- a/ext/json/ext/generator/generator.c +++ b/ext/json/ext/generator/generator.c @@ -1295,6 +1295,8 @@ static void generate_json_fallback(FBuffer *buffer, struct generate_json_data *d VALUE tmp; if (rb_respond_to(obj, i_to_json)) { tmp = rb_funcall(obj, i_to_json, 1, vstate_get(data)); + GET_STATE(data->vstate); + data->depth = state->depth; Check_Type(tmp, T_STRING); fbuffer_append_str(buffer, tmp); } else { diff --git a/java/src/json/ext/Generator.java b/java/src/json/ext/Generator.java index 78281dbd..0caa6948 100644 --- a/java/src/json/ext/Generator.java +++ b/java/src/json/ext/Generator.java @@ -462,10 +462,10 @@ static void generateArray(ThreadContext context, Session session, RubyArray