|
@@ -23,7 +23,10 @@
|
|
|
/* cJSON */
|
|
|
/* JSON parser in C. */
|
|
|
|
|
|
+#ifdef __GNUC__
|
|
|
#pragma GCC visibility push(default)
|
|
|
+#endif
|
|
|
+
|
|
|
#include <string.h>
|
|
|
#include <stdio.h>
|
|
|
#include <math.h>
|
|
@@ -32,7 +35,10 @@
|
|
|
#include <limits.h>
|
|
|
#include <ctype.h>
|
|
|
#include <locale.h>
|
|
|
+
|
|
|
+#ifdef __GNUC__
|
|
|
#pragma GCC visibility pop
|
|
|
+#endif
|
|
|
|
|
|
#include "cJSON.h"
|
|
|
|
|
@@ -956,7 +962,7 @@ static parse_buffer *buffer_skip_whitespace(parse_buffer * const buffer)
|
|
|
/* Parse an object - create a new root, and populate. */
|
|
|
CJSON_PUBLIC(cJSON *) cJSON_ParseWithOpts(const char *value, const char **return_parse_end, cJSON_bool require_null_terminated)
|
|
|
{
|
|
|
- parse_buffer buffer;
|
|
|
+ parse_buffer buffer = { 0 };
|
|
|
cJSON *item = NULL;
|
|
|
|
|
|
/* reset error position */
|
|
@@ -1040,7 +1046,7 @@ CJSON_PUBLIC(cJSON *) cJSON_Parse(const char *value)
|
|
|
return cJSON_ParseWithOpts(value, 0, 0);
|
|
|
}
|
|
|
|
|
|
-#define min(a, b) ((a < b) ? a : b)
|
|
|
+#define cjson_min(a, b) ((a < b) ? a : b)
|
|
|
|
|
|
static unsigned char *print(const cJSON * const item, cJSON_bool format, const internal_hooks * const hooks)
|
|
|
{
|
|
@@ -1079,7 +1085,7 @@ static unsigned char *print(const cJSON * const item, cJSON_bool format, const i
|
|
|
{
|
|
|
goto fail;
|
|
|
}
|
|
|
- memcpy(printed, buffer->buffer, min(buffer->length, buffer->offset + 1));
|
|
|
+ memcpy(printed, buffer->buffer, cjson_min(buffer->length, buffer->offset + 1));
|
|
|
printed[buffer->offset] = '\0'; /* just to be sure */
|
|
|
|
|
|
/* free the buffer */
|
|
@@ -1771,7 +1777,10 @@ CJSON_PUBLIC(void) cJSON_AddItemToObject(cJSON *object, const char *string, cJSO
|
|
|
#if defined (__clang__) || ((__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 5))))
|
|
|
#pragma GCC diagnostic push
|
|
|
#endif
|
|
|
+#ifdef __GNUC__
|
|
|
#pragma GCC diagnostic ignored "-Wcast-qual"
|
|
|
+#endif
|
|
|
+
|
|
|
/* Add an item to an object with constant string as key */
|
|
|
CJSON_PUBLIC(void) cJSON_AddItemToObjectCS(cJSON *object, const char *string, cJSON *item)
|
|
|
{
|