Browse Source

Merge 990fa8e3ee into e48a25cfbb

pull/88/merge
Anatol Belski 12 years ago
parent
commit
0aa4cda62a
3 changed files with 13 additions and 5 deletions
  1. +1
    -1
      json_inttypes.h
  2. +7
    -0
      json_object.c
  3. +5
    -4
      json_util.c

+ 1
- 1
json_inttypes.h View File

@@ -4,7 +4,7 @@

#include "json_config.h"

#if defined(_MSC_VER) && _MSC_VER < 1700
#if defined(_MSC_VER) && _MSC_VER =< 1700

/* Anything less than Visual Studio C++ 10 is missing stdint.h and inttypes.h */
typedef __int32 int32_t;


+ 7
- 0
json_object.c View File

@@ -37,6 +37,13 @@
char* strndup(const char* str, size_t n);
#endif /* !HAVE_STRNDUP */

#if !defined(HAVE_SNPRINTF) && defined(_MSC_VER)
/* MSC has the version as _snprintf */
# define snprintf _snprintf
#elif !defined(HAVE_SNPRINTF)
# error You do not have snprintf on your system.
#endif /* HAVE_SNPRINTF */

// Don't define this. It's not thread-safe.
/* #define REFCOUNT_DEBUG 1 */



+ 5
- 4
json_util.c View File

@@ -159,14 +159,15 @@ int json_parse_double(const char *buf, double *retval)
static void sscanf_is_broken_test()
{
int64_t num64;
int ret_errno, is_int64_min, ret_errno2, is_int64_max;

(void)sscanf(" -01234567890123456789012345", "%" SCNd64, &num64);
int ret_errno = errno;
int is_int64_min = (num64 == INT64_MIN);
ret_errno = errno;
is_int64_min = (num64 == INT64_MIN);

(void)sscanf(" 01234567890123456789012345", "%" SCNd64, &num64);
int ret_errno2 = errno;
int is_int64_max = (num64 == INT64_MAX);
ret_errno2 = errno;
is_int64_max = (num64 == INT64_MAX);

if (ret_errno != ERANGE || !is_int64_min ||
ret_errno2 != ERANGE || !is_int64_max)


Loading…
Cancel
Save