From 0a66ca8de720fabf65ab7d1854a5fb1789f775c2 Mon Sep 17 00:00:00 2001 From: Florian Frank Date: Fri, 6 Nov 2009 00:25:03 +0100 Subject: make inc function static, optimised a bit --- ext/json/ext/generator/fbuffer.c | 2 +- ext/json/ext/generator/fbuffer.h | 1 - ext/json/ext/generator/generator.c | 14 ++++++++------ 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/ext/json/ext/generator/fbuffer.c b/ext/json/ext/generator/fbuffer.c index 813a00c..521f9e1 100644 --- a/ext/json/ext/generator/fbuffer.c +++ b/ext/json/ext/generator/fbuffer.c @@ -35,7 +35,7 @@ inline void fbuffer_clear(FBuffer *fb) fb->len = 0; } -inline void fbuffer_inc_capa(FBuffer *fb, unsigned int requested) +static inline void fbuffer_inc_capa(FBuffer *fb, unsigned int requested) { unsigned int required; diff --git a/ext/json/ext/generator/fbuffer.h b/ext/json/ext/generator/fbuffer.h index 725d4ff..f4baf62 100644 --- a/ext/json/ext/generator/fbuffer.h +++ b/ext/json/ext/generator/fbuffer.h @@ -23,7 +23,6 @@ inline FBuffer *fbuffer_alloc_with_length(unsigned initial_length); inline void fbuffer_free(FBuffer *fb); inline void fbuffer_free_only_buffer(FBuffer *fb); inline void fbuffer_clear(FBuffer *fb); -inline void fbuffer_inc_capa(FBuffer *fb, unsigned int requested); inline void fbuffer_append(FBuffer *fb, const char *newstr, unsigned int len); inline void fbuffer_append_char(FBuffer *fb, char newchr); diff --git a/ext/json/ext/generator/generator.c b/ext/json/ext/generator/generator.c index f7fea95..792c4a4 100644 --- a/ext/json/ext/generator/generator.c +++ b/ext/json/ext/generator/generator.c @@ -510,12 +510,14 @@ void generate_json(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *state, V char allow_nan = state->allow_nan; double value = RFLOAT_VALUE(obj); tmp = rb_funcall(obj, i_to_s, 0); - if (!allow_nan && isinf(value)) { - fbuffer_free(buffer); - rb_raise(eGeneratorError, "%u: %s not allowed in JSON", __LINE__, StringValueCStr(tmp)); - } else if (!allow_nan && isnan(value)) { - fbuffer_free(buffer); - rb_raise(eGeneratorError, "%u: %s not allowed in JSON", __LINE__, StringValueCStr(tmp)); + if (!allow_nan) { + if (isinf(value)) { + fbuffer_free(buffer); + rb_raise(eGeneratorError, "%u: %s not allowed in JSON", __LINE__, StringValueCStr(tmp)); + } else if (isnan(value)) { + fbuffer_free(buffer); + rb_raise(eGeneratorError, "%u: %s not allowed in JSON", __LINE__, StringValueCStr(tmp)); + } } fbuffer_append(buffer, RSTRING_PAIR(tmp)); } -- cgit v1.2.1