diff options
-rw-r--r-- | ChangeLog | 11 | ||||
-rw-r--r-- | ext/json/generator/generator.c | 2 | ||||
-rw-r--r-- | ext/json/generator/generator.h | 10 | ||||
-rw-r--r-- | ext/json/parser/parser.c | 5 | ||||
-rw-r--r-- | ext/json/parser/parser.h | 10 | ||||
-rw-r--r-- | ext/json/parser/parser.rl | 5 |
6 files changed, 39 insertions, 4 deletions
@@ -1,3 +1,14 @@ +Sat Dec 27 20:12:55 2014 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * ext/json/generator/generator.c (JSON_Generator_State_type): add + #ifdef for backward compatibility. + + * ext/json/parser/parser.rl (JSON_Parser_type): ditto. + + * ext/json/generator/generator.h (ZALLOC): add fallback definition. + + * ext/json/parser/parser.h (ZALLOC): ditto. + Sat Dec 27 16:54:05 2014 Tanaka Akira <akr@fsij.org> * process.c: Unused code removed. diff --git a/ext/json/generator/generator.c b/ext/json/generator/generator.c index f56ac09cd2..673da3320c 100644 --- a/ext/json/generator/generator.c +++ b/ext/json/generator/generator.c @@ -518,8 +518,10 @@ static size_t State_memsize(const void *ptr) static const rb_data_type_t JSON_Generator_State_type = { "JSON/Generator/State", {NULL, State_free, State_memsize,}, +#ifdef RUBY_TYPED_FREE_IMMEDIATELY 0, 0, RUBY_TYPED_FREE_IMMEDIATELY, +#endif }; static JSON_Generator_State *State_allocate(void) diff --git a/ext/json/generator/generator.h b/ext/json/generator/generator.h index ddd1aa8a30..9277682603 100644 --- a/ext/json/generator/generator.h +++ b/ext/json/generator/generator.h @@ -149,4 +149,14 @@ static VALUE cState_depth_set(VALUE self, VALUE depth); static FBuffer *cState_prepare_buffer(VALUE self); static const rb_data_type_t JSON_Generator_State_type; +#ifndef ZALLOC +#define ZALLOC(type) ((type *)ruby_zalloc(sizeof(type))) +static inline void *ruby_zalloc(size_t n) +{ + void *p = ruby_xmalloc(n); + memset(p, 0, n); + return p; +} +#endif + #endif diff --git a/ext/json/parser/parser.c b/ext/json/parser/parser.c index f9d0d193b6..b9f753c56d 100644 --- a/ext/json/parser/parser.c +++ b/ext/json/parser/parser.c @@ -2094,8 +2094,7 @@ static VALUE cParser_parse(VALUE self) static JSON_Parser *JSON_allocate(void) { - JSON_Parser *json = ALLOC(JSON_Parser); - MEMZERO(json, JSON_Parser, 1); + JSON_Parser *json = ZALLOC(JSON_Parser); json->fbuffer = fbuffer_alloc(0); return json; } @@ -2126,8 +2125,10 @@ static size_t JSON_memsize(const void *ptr) static const rb_data_type_t JSON_Parser_type = { "JSON/Parser", {JSON_mark, JSON_free, JSON_memsize,}, +#ifdef RUBY_TYPED_FREE_IMMEDIATELY 0, 0, RUBY_TYPED_FREE_IMMEDIATELY, +#endif }; static VALUE cJSON_parser_s_allocate(VALUE klass) diff --git a/ext/json/parser/parser.h b/ext/json/parser/parser.h index 45afbc2732..980999a6d7 100644 --- a/ext/json/parser/parser.h +++ b/ext/json/parser/parser.h @@ -75,4 +75,14 @@ static VALUE cJSON_parser_s_allocate(VALUE klass); static VALUE cParser_source(VALUE self); static const rb_data_type_t JSON_Parser_type; +#ifndef ZALLOC +#define ZALLOC(type) ((type *)ruby_zalloc(sizeof(type))) +static inline void *ruby_zalloc(size_t n) +{ + void *p = ruby_xmalloc(n); + memset(p, 0, n); + return p; +} +#endif + #endif diff --git a/ext/json/parser/parser.rl b/ext/json/parser/parser.rl index 3d7b5a65fb..0b6fb041c5 100644 --- a/ext/json/parser/parser.rl +++ b/ext/json/parser/parser.rl @@ -817,8 +817,7 @@ static VALUE cParser_parse(VALUE self) static JSON_Parser *JSON_allocate(void) { - JSON_Parser *json = ALLOC(JSON_Parser); - MEMZERO(json, JSON_Parser, 1); + JSON_Parser *json = ZALLOC(JSON_Parser); json->fbuffer = fbuffer_alloc(0); return json; } @@ -849,8 +848,10 @@ static size_t JSON_memsize(const void *ptr) static const rb_data_type_t JSON_Parser_type = { "JSON/Parser", {JSON_mark, JSON_free, JSON_memsize,}, +#ifdef RUBY_TYPED_FREE_IMMEDIATELY 0, 0, RUBY_TYPED_FREE_IMMEDIATELY, +#endif }; static VALUE cJSON_parser_s_allocate(VALUE klass) |