summaryrefslogtreecommitdiff
path: root/ext/json/generator
diff options
context:
space:
mode:
-rw-r--r--ext/json/generator/generator.c17
-rw-r--r--ext/json/generator/generator.h9
2 files changed, 9 insertions, 17 deletions
@@ -911,15 +911,6 @@ static void generate_json(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *s
}
}
-static FBuffer *cState_prepare_buffer(VALUE self)
-{
- FBuffer *buffer;
- GET_STATE(self);
- buffer = fbuffer_alloc(state->buffer_initial_length);
-
- return buffer;
-}
-
struct generate_json_data {
FBuffer *buffer;
VALUE vstate;
@@ -948,18 +939,20 @@ static VALUE generate_json_rescue(VALUE d, VALUE exc)
static VALUE cState_partial_generate(VALUE self, VALUE obj)
{
- FBuffer *buffer = cState_prepare_buffer(self);
GET_STATE(self);
struct generate_json_data data = {
- .buffer = buffer,
.vstate = self,
.state = state,
.obj = obj
};
rb_rescue(generate_json_try, (VALUE)&data, generate_json_rescue, (VALUE)&data);
- return fbuffer_to_s(buffer);
}
/*
@@ -55,16 +55,16 @@ typedef struct JSON_Generator_StateStruct {
GET_STATE_TO(self, state)
#define GENERATE_JSON(type) \
- FBuffer *buffer; \
VALUE Vstate; \
JSON_Generator_State *state; \
\
rb_scan_args(argc, argv, "01", &Vstate); \
Vstate = cState_from_state_s(cState, Vstate); \
TypedData_Get_Struct(Vstate, JSON_Generator_State, &JSON_Generator_State_type, state); \
- buffer = cState_prepare_buffer(Vstate); \
- generate_json_##type(buffer, Vstate, state, self); \
- return fbuffer_to_s(buffer)
static VALUE mHash_to_json(int argc, VALUE *argv, VALUE self);
static VALUE mArray_to_json(int argc, VALUE *argv, VALUE self);
@@ -122,7 +122,6 @@ static VALUE cState_script_safe(VALUE self);
static VALUE cState_script_safe_set(VALUE self, VALUE depth);
static VALUE cState_strict(VALUE self);
static VALUE cState_strict_set(VALUE self, VALUE strict);
-static FBuffer *cState_prepare_buffer(VALUE self);
static const rb_data_type_t JSON_Generator_State_type;