]> granicus.if.org Git - php/commitdiff
Handle very small longs via double
authorIlia Alshanetsky <iliaa@php.net>
Wed, 13 Jun 2007 17:56:41 +0000 (17:56 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Wed, 13 Jun 2007 17:56:41 +0000 (17:56 +0000)
ext/json/JSON_parser.c

index 9f46553f67fb053bb7fe0e30311544c4f2ab504b..c054d5038e9d1ea2b0557639c2096709e98939b9 100644 (file)
@@ -285,7 +285,7 @@ static void json_create_zval(zval **z, smart_str *buf, int type)
     if (type == IS_LONG)
     {
        double d = zend_strtod(buf->c, NULL);
-       if (d > LONG_MAX) {
+       if (d > LONG_MAX || d < -LONG_MAX) {
                ZVAL_DOUBLE(*z, d);
        } else {
                ZVAL_LONG(*z, (long)d);