summaryrefslogtreecommitdiff
path: root/ext/json
diff options
context:
space:
mode:
Diffstat (limited to 'ext/json')
-rw-r--r--ext/json/ext/generator.c12
-rw-r--r--ext/json/ext/generator.h2
2 files changed, 7 insertions, 7 deletions
diff --git a/ext/json/ext/generator.c b/ext/json/ext/generator.c
index 05e0f7d..555fcce 100644
--- a/ext/json/ext/generator.c
+++ b/ext/json/ext/generator.c
@@ -367,10 +367,10 @@ static void freverse(char *start, char *end)
}
}
-static int fitoa(int number, char *buf)
+static int fltoa(long number, char *buf)
{
static char digits[] = "0123456789";
- int sign = number;
+ long sign = number;
char* tmp = buf;
if (sign < 0) number = -number;
@@ -380,10 +380,10 @@ static int fitoa(int number, char *buf)
return tmp - buf;
}
-static void fbuffer_append_integer(FBuffer *fb, int number)
+static void fbuffer_append_long(FBuffer *fb, long number)
{
- char buf[12];
- int len = fitoa(number, buf);
+ char buf[20];
+ int len = fltoa(number, buf);
fbuffer_append(fb, buf, len);
}
@@ -841,7 +841,7 @@ static void generate_json(FBuffer *buffer, VALUE Vstate, JSON_Generator_State *s
fbuffer_append(buffer, "true", 4);
break;
case T_FIXNUM:
- fbuffer_append_integer(buffer, FIX2INT(obj));
+ fbuffer_append_long(buffer, FIX2LONG(obj));
break;
case T_BIGNUM:
tmp = rb_funcall(obj, i_to_s, 0);
diff --git a/ext/json/ext/generator.h b/ext/json/ext/generator.h
index 72d7c8a..37240a9 100644
--- a/ext/json/ext/generator.h
+++ b/ext/json/ext/generator.h
@@ -70,7 +70,7 @@ static void fbuffer_free(FBuffer *fb);
static void fbuffer_free_only_buffer(FBuffer *fb);
static void fbuffer_clear(FBuffer *fb);
static void fbuffer_append(FBuffer *fb, const char *newstr, unsigned int len);
-static void fbuffer_append_integer(FBuffer *fb, int number);
+static void fbuffer_append_long(FBuffer *fb, long number);
static void fbuffer_append_char(FBuffer *fb, char newchr);
static FBuffer *fbuffer_dup(FBuffer *fb);