Compare commits
No commits in common. 'c9' and 'cs10' have entirely different histories.
@ -1 +1 @@
|
||||
SOURCES/json-c-0.14-20200419.tar.gz
|
||||
SOURCES/json-c-0.18-20240915.tar.gz
|
||||
|
@ -1 +1 @@
|
||||
b9b6d4c220c991ea1a8b9ca6a411ace9fef9167f SOURCES/json-c-0.14-20200419.tar.gz
|
||||
7c5679b5d797609ed34ec0918bfdb04e78055ade SOURCES/json-c-0.18-20240915.tar.gz
|
||||
|
@ -1,80 +0,0 @@
|
||||
From 4a546e7b2f471157c6f479df1ef687864fcbd89e Mon Sep 17 00:00:00 2001
|
||||
From: Eric Haszlakiewicz <erh+git@nimenees.com>
|
||||
Date: Sun, 24 May 2020 03:53:32 +0000
|
||||
Subject: [PATCH] In arraylist, use malloc instead of calloc, avoid clearing
|
||||
with memeset until we really need to, and micro-optimize array_list_add().
|
||||
|
||||
---
|
||||
arraylist.c | 29 +++++++++++++++++++++++++----
|
||||
1 file changed, 25 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/arraylist.c b/arraylist.c
|
||||
index e5524aca75..3e7bfa8950 100644
|
||||
--- a/arraylist.c
|
||||
+++ b/arraylist.c
|
||||
@@ -40,13 +40,13 @@ struct array_list *array_list_new(array_list_free_fn *free_fn)
|
||||
{
|
||||
struct array_list *arr;
|
||||
|
||||
- arr = (struct array_list *)calloc(1, sizeof(struct array_list));
|
||||
+ arr = (struct array_list *)malloc(sizeof(struct array_list));
|
||||
if (!arr)
|
||||
return NULL;
|
||||
arr->size = ARRAY_LIST_DEFAULT_SIZE;
|
||||
arr->length = 0;
|
||||
arr->free_fn = free_fn;
|
||||
- if (!(arr->array = (void **)calloc(arr->size, sizeof(void *))))
|
||||
+ if (!(arr->array = (void **)malloc(arr->size * sizeof(void *))))
|
||||
{
|
||||
free(arr);
|
||||
return NULL;
|
||||
@@ -92,11 +92,11 @@ static int array_list_expand_internal(struct array_list *arr, size_t max)
|
||||
if (!(t = realloc(arr->array, new_size * sizeof(void *))))
|
||||
return -1;
|
||||
arr->array = (void **)t;
|
||||
- (void)memset(arr->array + arr->size, 0, (new_size - arr->size) * sizeof(void *));
|
||||
arr->size = new_size;
|
||||
return 0;
|
||||
}
|
||||
|
||||
+//static inline int _array_list_put_idx(struct array_list *arr, size_t idx, void *data)
|
||||
int array_list_put_idx(struct array_list *arr, size_t idx, void *data)
|
||||
{
|
||||
if (idx > SIZE_T_MAX - 1)
|
||||
@@ -106,6 +106,17 @@ int array_list_put_idx(struct array_list *arr, size_t idx, void *data)
|
||||
if (idx < arr->length && arr->array[idx])
|
||||
arr->free_fn(arr->array[idx]);
|
||||
arr->array[idx] = data;
|
||||
+ if (idx > arr->length)
|
||||
+ {
|
||||
+ /* Zero out the arraylist slots in between the old length
|
||||
+ and the newly added entry so we know those entries are
|
||||
+ empty.
|
||||
+ e.g. when setting array[7] in an array that used to be
|
||||
+ only 5 elements longs, array[5] and array[6] need to be
|
||||
+ set to 0.
|
||||
+ */
|
||||
+ memset(arr->array + arr->length, 0, (idx - arr->length) * sizeof(void *));
|
||||
+ }
|
||||
if (arr->length <= idx)
|
||||
arr->length = idx + 1;
|
||||
return 0;
|
||||
@@ -113,7 +124,17 @@ int array_list_put_idx(struct array_list *arr, size_t idx, void *data)
|
||||
|
||||
int array_list_add(struct array_list *arr, void *data)
|
||||
{
|
||||
- return array_list_put_idx(arr, arr->length, data);
|
||||
+ /* Repeat some of array_list_put_idx() so we can skip several
|
||||
+ checks that we know are unnecessary when appending at the end
|
||||
+ */
|
||||
+ size_t idx = arr->length;
|
||||
+ if (idx > SIZE_T_MAX - 1)
|
||||
+ return -1;
|
||||
+ if (array_list_expand_internal(arr, idx + 1))
|
||||
+ return -1;
|
||||
+ arr->array[idx] = data;
|
||||
+ arr->length++;
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
void array_list_sort(struct array_list *arr, int (*compar)(const void *, const void *))
|
File diff suppressed because one or more lines are too long
@ -1,59 +0,0 @@
|
||||
From 8f3592b3d59874b4dd230a741fad3ffa99223a45 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= <besser82@fedoraproject.org>
|
||||
Date: Mon, 18 May 2020 18:20:01 +0200
|
||||
Subject: [PATCH] CMake: Fix out-of-tree build for Doxygen documentation.
|
||||
|
||||
---
|
||||
CMakeLists.txt | 9 +++++----
|
||||
Doxyfile => Doxyfile.in | 4 ++--
|
||||
2 files changed, 7 insertions(+), 6 deletions(-)
|
||||
rename Doxyfile => Doxyfile.in (99%)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 901eb6e364..f58301c71a 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -368,13 +368,14 @@ option(BUILD_DOCUMENTATION "Create and install the HTML based API documentation(
|
||||
|
||||
if (DOXYGEN_FOUND)
|
||||
|
||||
+ configure_file(${PROJECT_SOURCE_DIR}/Doxyfile.in
|
||||
+ ${PROJECT_BINARY_DIR}/Doxyfile)
|
||||
+ message(STATUS "Written ${PROJECT_BINARY_DIR}/Doxyfile")
|
||||
+
|
||||
add_custom_target(doc
|
||||
- COMMAND ${DOXYGEN_EXECUTABLE} ${PROJECT_SOURCE_DIR}/Doxyfile
|
||||
+ COMMAND ${DOXYGEN_EXECUTABLE} ${PROJECT_BINARY_DIR}/Doxyfile
|
||||
WORKING_DIRECTORY ${PROJECT_BINARY_DIR})
|
||||
|
||||
- # request to configure the file
|
||||
- configure_file(Doxyfile Doxyfile)
|
||||
-
|
||||
else (DOXYGEN_FOUND)
|
||||
message("Warning: doxygen not found, the 'doc' target will not be included")
|
||||
endif(DOXYGEN_FOUND)
|
||||
diff --git a/Doxyfile b/Doxyfile.in
|
||||
similarity index 99%
|
||||
rename from Doxyfile
|
||||
rename to Doxyfile.in
|
||||
index 06d54e661e..42a08535c2 100644
|
||||
--- a/Doxyfile
|
||||
+++ b/Doxyfile.in
|
||||
@@ -38,7 +38,7 @@ PROJECT_NAME = json-c
|
||||
# could be handy for archiving the generated documentation or if some version
|
||||
# control system is used.
|
||||
|
||||
-PROJECT_NUMBER = 0.14
|
||||
+PROJECT_NUMBER = @PROJECT_VERSION@
|
||||
|
||||
# Using the PROJECT_BRIEF tag one can provide an optional one line description
|
||||
# for a project that appears at the top of each page and should give viewer a
|
||||
@@ -753,7 +753,7 @@ WARN_LOGFILE =
|
||||
# spaces.
|
||||
# Note: If this tag is empty the current directory is searched.
|
||||
|
||||
-INPUT =
|
||||
+INPUT = @CMAKE_SOURCE_DIR@ @CMAKE_BINARY_DIR@
|
||||
|
||||
# This tag can be used to specify the character encoding of the source files
|
||||
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
|
@ -1,23 +0,0 @@
|
||||
From 228881c8fc287182f284a58d8279a32fbeae0b7f Mon Sep 17 00:00:00 2001
|
||||
From: Eric Haszlakiewicz <erh+git@nimenees.com>
|
||||
Date: Tue, 21 Apr 2020 01:13:21 +0000
|
||||
Subject: [PATCH] Issue #585: don't install config.h
|
||||
|
||||
(cherry picked from commit 8b511c402b73d1d8b195991891c8d44859cb57ec)
|
||||
---
|
||||
CMakeLists.txt | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index ba692fff69..c51f477c5f 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -299,7 +299,7 @@ if ($ENV{VALGRIND})
|
||||
endif()
|
||||
|
||||
set(JSON_C_PUBLIC_HEADERS
|
||||
- ${PROJECT_BINARY_DIR}/config.h
|
||||
+ # Note: config.h is _not_ included here
|
||||
${PROJECT_BINARY_DIR}/json_config.h
|
||||
|
||||
${PROJECT_SOURCE_DIR}/json.h
|
@ -1,74 +0,0 @@
|
||||
From 003b58782b12798da3da8b952152988a88dfb532 Mon Sep 17 00:00:00 2001
|
||||
From: Pierce Lopez <pierce.lopez@gmail.com>
|
||||
Date: Sun, 10 May 2020 13:20:02 -0400
|
||||
Subject: [PATCH] fix json_parse_uint64() usage of errno
|
||||
|
||||
introduced in #542
|
||||
fixes #601
|
||||
---
|
||||
json_util.c | 8 +++-----
|
||||
json_util.h | 1 +
|
||||
tests/test_parse_int64.expected | 8 ++++----
|
||||
3 files changed, 8 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/json_util.c b/json_util.c
|
||||
index d3ee47df72..e8e2ec6bcb 100644
|
||||
--- a/json_util.c
|
||||
+++ b/json_util.c
|
||||
@@ -245,19 +245,17 @@ int json_parse_uint64(const char *buf, uint64_t *retval)
|
||||
{
|
||||
char *end = NULL;
|
||||
uint64_t val;
|
||||
- errno = 1;
|
||||
|
||||
+ errno = 0;
|
||||
while (*buf == ' ')
|
||||
- {
|
||||
buf++;
|
||||
- }
|
||||
if (*buf == '-')
|
||||
- errno = 0;
|
||||
+ return 1; /* error: uint cannot be negative */
|
||||
|
||||
val = strtoull(buf, &end, 10);
|
||||
if (end != buf)
|
||||
*retval = val;
|
||||
- return ((errno == 0) || (end == buf)) ? 1 : 0;
|
||||
+ return ((val == 0 && errno != 0) || (end == buf)) ? 1 : 0;
|
||||
}
|
||||
|
||||
#ifndef HAVE_REALLOC
|
||||
diff --git a/json_util.h b/json_util.h
|
||||
index 2a4b6c19bd..7520f036c4 100644
|
||||
--- a/json_util.h
|
||||
+++ b/json_util.h
|
||||
@@ -100,6 +100,7 @@ JSON_EXPORT int json_object_to_fd(int fd, struct json_object *obj, int flags);
|
||||
*/
|
||||
JSON_EXPORT const char *json_util_get_last_err(void);
|
||||
|
||||
+/* these parsing helpers return zero on success */
|
||||
JSON_EXPORT int json_parse_int64(const char *buf, int64_t *retval);
|
||||
JSON_EXPORT int json_parse_uint64(const char *buf, uint64_t *retval);
|
||||
JSON_EXPORT int json_parse_double(const char *buf, double *retval);
|
||||
diff --git a/tests/test_parse_int64.expected b/tests/test_parse_int64.expected
|
||||
index f4c5750b0b..6dca94b470 100644
|
||||
--- a/tests/test_parse_int64.expected
|
||||
+++ b/tests/test_parse_int64.expected
|
||||
@@ -34,13 +34,13 @@ buf=123 parseit=0, value=123
|
||||
==========json_parse_uint64() test===========
|
||||
buf=x parseit=1, value=666
|
||||
buf=0 parseit=0, value=0
|
||||
-buf=-0 parseit=1, value=0
|
||||
+buf=-0 parseit=1, value=666
|
||||
buf=00000000 parseit=0, value=0
|
||||
-buf=-00000000 parseit=1, value=0
|
||||
+buf=-00000000 parseit=1, value=666
|
||||
buf=1 parseit=0, value=1
|
||||
buf=2147483647 parseit=0, value=2147483647
|
||||
-buf=-1 parseit=1, value=18446744073709551615
|
||||
-buf=-9223372036854775808 parseit=1, value=9223372036854775808
|
||||
+buf=-1 parseit=1, value=666
|
||||
+buf=-9223372036854775808 parseit=1, value=666
|
||||
buf= 1 parseit=0, value=1
|
||||
buf=00001234 parseit=0, value=1234
|
||||
buf=0001234x parseit=0, value=1234
|
@ -1,121 +0,0 @@
|
||||
From 61e2bae5111b49a788fe4c236b473dc86250a7fe Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= <besser82@fedoraproject.org>
|
||||
Date: Mon, 18 May 2020 20:32:35 +0200
|
||||
Subject: [PATCH 1/2] doc: Move Doxyfile into doc subdir
|
||||
|
||||
---
|
||||
.gitignore | 2 +-
|
||||
CMakeLists.txt | 19 +------------------
|
||||
doc/CMakeLists.txt | 16 ++++++++++++++++
|
||||
Doxyfile.in => doc/Doxyfile.in | 2 +-
|
||||
4 files changed, 19 insertions(+), 20 deletions(-)
|
||||
create mode 100644 doc/CMakeLists.txt
|
||||
rename Doxyfile.in => doc/Doxyfile.in (99%)
|
||||
|
||||
diff --git a/.gitignore b/.gitignore
|
||||
index 958ace3ac1..1cdaf9bdba 100644
|
||||
--- a/.gitignore
|
||||
+++ b/.gitignore
|
||||
@@ -83,7 +83,7 @@
|
||||
/Testing/
|
||||
|
||||
# ...and build artifacts.
|
||||
-/doc
|
||||
+/doc/html
|
||||
/libjson-c.a
|
||||
/libjson-c.so
|
||||
/libjson-c.so.*
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index f58301c71a..ec17697170 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -361,24 +361,7 @@ set(JSON_C_SOURCES
|
||||
include_directories(${PROJECT_SOURCE_DIR})
|
||||
include_directories(${PROJECT_BINARY_DIR})
|
||||
|
||||
-# generate doxygen documentation for json-c API
|
||||
-
|
||||
-find_package(Doxygen)
|
||||
-option(BUILD_DOCUMENTATION "Create and install the HTML based API documentation(requires Doxygen)" ${DOXYGEN_FOUND})
|
||||
-
|
||||
-if (DOXYGEN_FOUND)
|
||||
-
|
||||
- configure_file(${PROJECT_SOURCE_DIR}/Doxyfile.in
|
||||
- ${PROJECT_BINARY_DIR}/Doxyfile)
|
||||
- message(STATUS "Written ${PROJECT_BINARY_DIR}/Doxyfile")
|
||||
-
|
||||
- add_custom_target(doc
|
||||
- COMMAND ${DOXYGEN_EXECUTABLE} ${PROJECT_BINARY_DIR}/Doxyfile
|
||||
- WORKING_DIRECTORY ${PROJECT_BINARY_DIR})
|
||||
-
|
||||
-else (DOXYGEN_FOUND)
|
||||
- message("Warning: doxygen not found, the 'doc' target will not be included")
|
||||
-endif(DOXYGEN_FOUND)
|
||||
+add_subdirectory(doc)
|
||||
|
||||
# uninstall
|
||||
add_custom_target(uninstall
|
||||
diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
|
||||
new file mode 100644
|
||||
index 0000000000..4872d8e8ad
|
||||
--- /dev/null
|
||||
+++ b/doc/CMakeLists.txt
|
||||
@@ -0,0 +1,16 @@
|
||||
+# generate doxygen documentation for json-c API
|
||||
+
|
||||
+find_package(Doxygen)
|
||||
+
|
||||
+if (DOXYGEN_FOUND)
|
||||
+
|
||||
+ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in
|
||||
+ ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile)
|
||||
+ message(STATUS "Wrote ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile")
|
||||
+
|
||||
+ add_custom_target(doc
|
||||
+ COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile)
|
||||
+
|
||||
+else (DOXYGEN_FOUND)
|
||||
+ message("Warning: doxygen not found, the 'doc' target will not be included")
|
||||
+endif(DOXYGEN_FOUND)
|
||||
diff --git a/Doxyfile.in b/doc/Doxyfile.in
|
||||
similarity index 99%
|
||||
rename from Doxyfile.in
|
||||
rename to doc/Doxyfile.in
|
||||
index 42a08535c2..ce8d8ff78c 100644
|
||||
--- a/Doxyfile.in
|
||||
+++ b/doc/Doxyfile.in
|
||||
@@ -58,7 +58,7 @@ PROJECT_LOGO =
|
||||
# entered, it will be relative to the location where doxygen was started. If
|
||||
# left blank the current directory will be used.
|
||||
|
||||
-OUTPUT_DIRECTORY = doc
|
||||
+OUTPUT_DIRECTORY = @CMAKE_CURRENT_BINARY_DIR@
|
||||
|
||||
# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub-
|
||||
# directories (in 2 levels) under the output directory of each output format and
|
||||
|
||||
From 1e94da779a9aa107690e4f2921ab4d0300aca579 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= <besser82@fedoraproject.org>
|
||||
Date: Mon, 18 May 2020 20:36:05 +0200
|
||||
Subject: [PATCH 2/2] CMake: Fix grammar: written -> wrote.
|
||||
|
||||
---
|
||||
CMakeLists.txt | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index ec17697170..333513c5e0 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -237,9 +237,9 @@ endif()
|
||||
|
||||
# Once we've done basic symbol/header searches let's add them in.
|
||||
configure_file(${PROJECT_SOURCE_DIR}/cmake/config.h.in ${PROJECT_BINARY_DIR}/config.h)
|
||||
-message(STATUS "Written ${PROJECT_BINARY_DIR}/config.h")
|
||||
+message(STATUS "Wrote ${PROJECT_BINARY_DIR}/config.h")
|
||||
configure_file(${PROJECT_SOURCE_DIR}/cmake/json_config.h.in ${PROJECT_BINARY_DIR}/json_config.h)
|
||||
-message(STATUS "Written ${PROJECT_BINARY_DIR}/json_config.h")
|
||||
+message(STATUS "Wrote ${PROJECT_BINARY_DIR}/json_config.h")
|
||||
|
||||
if ("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ffunction-sections -fdata-sections")
|
@ -1,22 +0,0 @@
|
||||
From 3008401b2a8f5b25bf5665cafa22b335d9ffdb3a Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= <besser82@fedoraproject.org>
|
||||
Date: Mon, 18 May 2020 17:00:17 +0200
|
||||
Subject: [PATCH] test_deep_copy: Fix assertion value.
|
||||
|
||||
---
|
||||
tests/test_deep_copy.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tests/test_deep_copy.c b/tests/test_deep_copy.c
|
||||
index b6c1b999f4..34ef1fe5d3 100644
|
||||
--- a/tests/test_deep_copy.c
|
||||
+++ b/tests/test_deep_copy.c
|
||||
@@ -126,7 +126,7 @@ int main(int argc, char **argv)
|
||||
src3 = json_tokener_parse(json_str3);
|
||||
|
||||
assert(src1 != NULL);
|
||||
- assert(src1 != NULL);
|
||||
+ assert(src2 != NULL);
|
||||
assert(src3 != NULL);
|
||||
|
||||
printf("PASSED - loaded input data\n");
|
@ -1,187 +0,0 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 21e395ed3c..da0af963ed 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -325,6 +325,22 @@ if (NOT ("${CMAKE_C_COMPILER_ID}" STREQUAL "MSVC"))
|
||||
# XXX need cmake>=3.13 for this:
|
||||
#add_link_options("-Wl,-Bsymbolic-functions")
|
||||
endif()
|
||||
+
|
||||
+ file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/check-version-script.sym" "TEST { global: *; };")
|
||||
+ list(APPEND CMAKE_REQUIRED_LIBRARIES "-Wl,--version-script,${CMAKE_CURRENT_BINARY_DIR}/check-version-script.sym")
|
||||
+ check_c_source_compiles(
|
||||
+ "
|
||||
+ int main (void)
|
||||
+ {
|
||||
+ return 0;
|
||||
+ }
|
||||
+ "
|
||||
+ VERSION_SCRIPT_WORKS
|
||||
+ )
|
||||
+ list(REMOVE_ITEM CMAKE_REQUIRED_LIBRARIES "-Wl,--version-script,${CMAKE_CURRENT_BINARY_DIR}/check-version-script.sym")
|
||||
+ if (VERSION_SCRIPT_WORKS)
|
||||
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--version-script,${CMAKE_CURRENT_SOURCE_DIR}/json-c.sym")
|
||||
+ endif()
|
||||
endif()
|
||||
|
||||
if ($ENV{VALGRIND})
|
||||
diff --git a/json-c.sym b/json-c.sym
|
||||
new file mode 100644
|
||||
index 0000000000..bf78792b7e
|
||||
--- /dev/null
|
||||
+++ b/json-c.sym
|
||||
@@ -0,0 +1,153 @@
|
||||
+JSONC_0.14 {
|
||||
+ global:
|
||||
+ _json_c_set_last_err;
|
||||
+ _json_c_strerror;
|
||||
+ _json_c_strerror_enable;
|
||||
+ array_list_add;
|
||||
+ array_list_bsearch;
|
||||
+ array_list_del_idx;
|
||||
+ array_list_free;
|
||||
+ array_list_get_idx;
|
||||
+ array_list_length;
|
||||
+ array_list_new;
|
||||
+ array_list_put_idx;
|
||||
+ array_list_sort;
|
||||
+ json_c_get_random_seed;
|
||||
+ json_c_object_sizeof;
|
||||
+ json_c_set_serialization_double_format;
|
||||
+ json_c_shallow_copy_default;
|
||||
+ json_c_version;
|
||||
+ json_c_version_num;
|
||||
+ json_c_visit;
|
||||
+ json_global_set_string_hash;
|
||||
+ json_hex_chars;
|
||||
+ json_number_chars;
|
||||
+ json_object_array_add;
|
||||
+ json_object_array_bsearch;
|
||||
+ json_object_array_del_idx;
|
||||
+ json_object_array_get_idx;
|
||||
+ json_object_array_length;
|
||||
+ json_object_array_put_idx;
|
||||
+ json_object_array_sort;
|
||||
+ json_object_deep_copy;
|
||||
+ json_object_double_to_json_string;
|
||||
+ json_object_equal;
|
||||
+ json_object_free_userdata;
|
||||
+ json_object_from_fd;
|
||||
+ json_object_from_fd_ex;
|
||||
+ json_object_from_file;
|
||||
+ json_object_get;
|
||||
+ json_object_get_array;
|
||||
+ json_object_get_boolean;
|
||||
+ json_object_get_double;
|
||||
+ json_object_get_int64;
|
||||
+ json_object_get_int;
|
||||
+ json_object_get_object;
|
||||
+ json_object_get_string;
|
||||
+ json_object_get_string_len;
|
||||
+ json_object_get_type;
|
||||
+ json_object_get_uint64;
|
||||
+ json_object_get_userdata;
|
||||
+ json_object_int_inc;
|
||||
+ json_object_is_type;
|
||||
+ json_object_iter_begin;
|
||||
+ json_object_iter_end;
|
||||
+ json_object_iter_equal;
|
||||
+ json_object_iter_init_default;
|
||||
+ json_object_iter_next;
|
||||
+ json_object_iter_peek_name;
|
||||
+ json_object_iter_peek_value;
|
||||
+ json_object_new_array;
|
||||
+ json_object_new_boolean;
|
||||
+ json_object_new_double;
|
||||
+ json_object_new_double_s;
|
||||
+ json_object_new_int64;
|
||||
+ json_object_new_int;
|
||||
+ json_object_new_null;
|
||||
+ json_object_new_object;
|
||||
+ json_object_new_string;
|
||||
+ json_object_new_string_len;
|
||||
+ json_object_new_uint64;
|
||||
+ json_object_object_add;
|
||||
+ json_object_object_add_ex;
|
||||
+ json_object_object_del;
|
||||
+ json_object_object_get;
|
||||
+ json_object_object_get_ex;
|
||||
+ json_object_object_length;
|
||||
+ json_object_put;
|
||||
+ json_object_set_boolean;
|
||||
+ json_object_set_double;
|
||||
+ json_object_set_int64;
|
||||
+ json_object_set_int;
|
||||
+ json_object_set_serializer;
|
||||
+ json_object_set_string;
|
||||
+ json_object_set_string_len;
|
||||
+ json_object_set_uint64;
|
||||
+ json_object_set_userdata;
|
||||
+ json_object_to_fd;
|
||||
+ json_object_to_file;
|
||||
+ json_object_to_file_ext;
|
||||
+ json_object_to_json_string;
|
||||
+ json_object_to_json_string_ext;
|
||||
+ json_object_to_json_string_length;
|
||||
+ json_object_userdata_to_json_string;
|
||||
+ json_parse_double;
|
||||
+ json_parse_int64;
|
||||
+ json_parse_uint64;
|
||||
+ json_pointer_get;
|
||||
+ json_pointer_getf;
|
||||
+ json_pointer_set;
|
||||
+ json_pointer_setf;
|
||||
+ json_tokener_error_desc;
|
||||
+ json_tokener_free;
|
||||
+ json_tokener_get_error;
|
||||
+ json_tokener_get_parse_end;
|
||||
+ json_tokener_new;
|
||||
+ json_tokener_new_ex;
|
||||
+ json_tokener_parse;
|
||||
+ json_tokener_parse_ex;
|
||||
+ json_tokener_parse_verbose;
|
||||
+ json_tokener_reset;
|
||||
+ json_tokener_set_flags;
|
||||
+ json_type_to_name;
|
||||
+ json_util_get_last_err;
|
||||
+ lh_char_equal;
|
||||
+ lh_kchar_table_new;
|
||||
+ lh_kptr_table_new;
|
||||
+ lh_ptr_equal;
|
||||
+ lh_table_delete;
|
||||
+ lh_table_delete_entry;
|
||||
+ lh_table_free;
|
||||
+ lh_table_insert;
|
||||
+ lh_table_insert_w_hash;
|
||||
+ lh_table_length;
|
||||
+ lh_table_lookup;
|
||||
+ lh_table_lookup_entry;
|
||||
+ lh_table_lookup_entry_w_hash;
|
||||
+ lh_table_lookup_ex;
|
||||
+ lh_table_new;
|
||||
+ lh_table_resize;
|
||||
+ mc_debug;
|
||||
+ mc_error;
|
||||
+ mc_get_debug;
|
||||
+ mc_info;
|
||||
+ mc_set_debug;
|
||||
+ mc_set_syslog;
|
||||
+ printbuf_free;
|
||||
+ printbuf_memappend;
|
||||
+ printbuf_memset;
|
||||
+ printbuf_new;
|
||||
+ printbuf_reset;
|
||||
+ sprintbuf;
|
||||
+
|
||||
+ local:
|
||||
+ *;
|
||||
+};
|
||||
+
|
||||
+JSONC_0.15 {
|
||||
+ global:
|
||||
+ array_list_new2;
|
||||
+ array_list_shrink;
|
||||
+ json_object_array_shrink;
|
||||
+ json_object_new_array_ext;
|
||||
+} JSONC_0.14;
|
||||
|
Loading…
Reference in new issue