diff options
Diffstat (limited to 'ext/json/generator')
-rw-r--r-- | ext/json/generator/generator.c | 2 | ||||
-rw-r--r-- | ext/json/generator/generator.h | 10 |
2 files changed, 12 insertions, 0 deletions
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 |