# HG changeset patch
# User Dmitry Volyntsev <xeioex@nginx.com>
# Date 1583251254 -10800
#      Tue Mar 03 19:00:54 2020 +0300
# Node ID c5c6aab76bb43ad36fc9f06e48a2ccbb3fc6d02a
# Parent  ef30d99ea2bef62594c9209413fcb61713bb7897
Fixed integer constant is too large compilation error by gcc 4.4.

diff -r ef30d99ea2be -r c5c6aab76bb4 src/njs_number.c
--- a/njs-0.3.9.orig/src/njs_number.c	Tue Mar 03 18:57:15 2020 +0300
+++ b/njs-0.3.9/src/njs_number.c	Tue Mar 03 19:00:54 2020 +0300
@@ -236,7 +236,7 @@ njs_uint64_to_string(njs_vm_t *vm, njs_v
     u_char  *dst, *p;
     u_char  buf[128];
 
-    if (njs_fast_path(u64 < 0x3fffffffffff)) {
+    if (njs_fast_path(u64 < 0x3fffffffffffULL)) {
         /* Fits to short_string. */
         dst = njs_string_short_start(value);
 
diff -r ef30d99ea2be -r c5c6aab76bb4 src/njs_number.h
--- a/njs-0.3.9.orig/src/njs_number.h	Tue Mar 03 18:57:15 2020 +0300
+++ b/njs-0.3.9/src/njs_number.h	Tue Mar 03 19:00:54 2020 +0300
@@ -8,7 +8,7 @@
 #define _NJS_NUMBER_H_INCLUDED_
 
 
-#define NJS_MAX_LENGTH           (0x1fffffffffffff)
+#define NJS_MAX_LENGTH           (0x1fffffffffffffULL)
 
 
 double njs_key_to_index(const njs_value_t *value);
