From 5547719573c6b37566480eaadf0c17bd0c5529bd Mon Sep 17 00:00:00 2001 From: nobu Date: Sun, 28 Dec 2014 17:03:36 +0000 Subject: ext/json: for ancient backward compatibilities git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49050 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/json/generator/generator.c | 6 ++++++ ext/json/generator/generator.h | 7 +++++++ ext/json/parser/parser.c | 6 ++++++ ext/json/parser/parser.h | 8 ++++++++ ext/json/parser/parser.rl | 6 ++++++ 5 files changed, 33 insertions(+) (limited to 'ext/json') diff --git a/ext/json/generator/generator.c b/ext/json/generator/generator.c index 673da3320c..1b7f036a5d 100644 --- a/ext/json/generator/generator.c +++ b/ext/json/generator/generator.c @@ -515,6 +515,7 @@ static size_t State_memsize(const void *ptr) return size; } +#ifdef HAVE_TYPE_RB_DATA_TYPE_T static const rb_data_type_t JSON_Generator_State_type = { "JSON/Generator/State", {NULL, State_free, State_memsize,}, @@ -523,6 +524,7 @@ static const rb_data_type_t JSON_Generator_State_type = { RUBY_TYPED_FREE_IMMEDIATELY, #endif }; +#endif static JSON_Generator_State *State_allocate(void) { @@ -533,7 +535,11 @@ static JSON_Generator_State *State_allocate(void) static VALUE cState_s_allocate(VALUE klass) { JSON_Generator_State *state = State_allocate(); +#ifdef HAVE_TYPE_RB_DATA_TYPE_T return TypedData_Wrap_Struct(klass, &JSON_Generator_State_type, state); +#else + return Data_Wrap_Struct(klass, NULL, State_free, state); +#endif } /* diff --git a/ext/json/generator/generator.h b/ext/json/generator/generator.h index 6cfb8ac739..a583971d9f 100644 --- a/ext/json/generator/generator.h +++ b/ext/json/generator/generator.h @@ -78,8 +78,13 @@ typedef struct JSON_Generator_StateStruct { long buffer_initial_length; } JSON_Generator_State; +#ifdef HAVE_TYPE_RB_DATA_TYPE_T #define GET_STATE_TO(self, state) \ TypedData_Get_Struct(self, JSON_Generator_State, &JSON_Generator_State_type, state) +#else +#define GET_STATE_TO(self, state) \ + Data_Get_Struct(self, JSON_Generator_State, state) +#endif #define GET_STATE(self) \ JSON_Generator_State *state; \ @@ -147,7 +152,9 @@ static VALUE cState_ascii_only_p(VALUE self); static VALUE cState_depth(VALUE self); static VALUE cState_depth_set(VALUE self, VALUE depth); static FBuffer *cState_prepare_buffer(VALUE self); +#ifdef HAVE_TYPE_RB_DATA_TYPE_T static const rb_data_type_t JSON_Generator_State_type; +#endif #ifndef ZALLOC #define ZALLOC(type) ((type *)ruby_zalloc(sizeof(type))) diff --git a/ext/json/parser/parser.c b/ext/json/parser/parser.c index b9f753c56d..b692cb43b6 100644 --- a/ext/json/parser/parser.c +++ b/ext/json/parser/parser.c @@ -2122,6 +2122,7 @@ static size_t JSON_memsize(const void *ptr) return sizeof(*json) + FBUFFER_CAPA(json->fbuffer); } +#ifdef HAVE_TYPE_RB_DATA_TYPE_T static const rb_data_type_t JSON_Parser_type = { "JSON/Parser", {JSON_mark, JSON_free, JSON_memsize,}, @@ -2130,11 +2131,16 @@ static const rb_data_type_t JSON_Parser_type = { RUBY_TYPED_FREE_IMMEDIATELY, #endif }; +#endif static VALUE cJSON_parser_s_allocate(VALUE klass) { JSON_Parser *json = JSON_allocate(); +#ifdef HAVE_TYPE_RB_DATA_TYPE_T return TypedData_Wrap_Struct(klass, &JSON_Parser_type, json); +#else + return Data_Wrap_Struct(klass, JSON_mark, JSON_free, json); +#endif } /* diff --git a/ext/json/parser/parser.h b/ext/json/parser/parser.h index 980999a6d7..394b79a4ea 100644 --- a/ext/json/parser/parser.h +++ b/ext/json/parser/parser.h @@ -49,9 +49,15 @@ typedef struct JSON_ParserStruct { #define GET_PARSER \ GET_PARSER_INIT; \ if (!json->Vsource) rb_raise(rb_eTypeError, "uninitialized instance") +#ifdef HAVE_TYPE_RB_DATA_TYPE_T #define GET_PARSER_INIT \ JSON_Parser *json; \ TypedData_Get_Struct(self, JSON_Parser, &JSON_Parser_type, json) +#else +#define GET_PARSER_INIT \ + JSON_Parser *json; \ + Data_Get_Struct(self, JSON_Parser, json) +#endif #define MinusInfinity "-Infinity" #define EVIL 0x666 @@ -73,7 +79,9 @@ static void JSON_mark(void *json); static void JSON_free(void *json); static VALUE cJSON_parser_s_allocate(VALUE klass); static VALUE cParser_source(VALUE self); +#ifdef HAVE_TYPE_RB_DATA_TYPE_T static const rb_data_type_t JSON_Parser_type; +#endif #ifndef ZALLOC #define ZALLOC(type) ((type *)ruby_zalloc(sizeof(type))) diff --git a/ext/json/parser/parser.rl b/ext/json/parser/parser.rl index 0b6fb041c5..e69fe57781 100644 --- a/ext/json/parser/parser.rl +++ b/ext/json/parser/parser.rl @@ -845,6 +845,7 @@ static size_t JSON_memsize(const void *ptr) return sizeof(*json) + FBUFFER_CAPA(json->fbuffer); } +#ifdef HAVE_TYPE_RB_DATA_TYPE_T static const rb_data_type_t JSON_Parser_type = { "JSON/Parser", {JSON_mark, JSON_free, JSON_memsize,}, @@ -853,11 +854,16 @@ static const rb_data_type_t JSON_Parser_type = { RUBY_TYPED_FREE_IMMEDIATELY, #endif }; +#endif static VALUE cJSON_parser_s_allocate(VALUE klass) { JSON_Parser *json = JSON_allocate(); +#ifdef HAVE_TYPE_RB_DATA_TYPE_T return TypedData_Wrap_Struct(klass, &JSON_Parser_type, json); +#else + return Data_Wrap_Struct(klass, JSON_mark, JSON_free, json); +#endif } /* -- cgit v1.2.3