summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Frank <flori@ping.de>2009-11-06 00:25:03 +0100
committerFlorian Frank <flori@ping.de>2009-11-06 00:25:03 +0100
commit0a66ca8de720fabf65ab7d1854a5fb1789f775c2 (patch)
treed4a79761df0ee4055d066c41ed1b59c479b0d0c6
parentaeb9d8ad2b85fa0624a835c7df2e32fa43bbf777 (diff)
downloadjson-0a66ca8de720fabf65ab7d1854a5fb1789f775c2.tar.gz
make inc function static, optimised a bit
-rw-r--r--ext/json/ext/generator/fbuffer.c2
-rw-r--r--ext/json/ext/generator/fbuffer.h1
-rw-r--r--ext/json/ext/generator/generator.c14
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));
}