mirror of
https://github.com/json-c/json-c.git
synced 2026-03-13 18:19:06 +08:00
The behavior of the json_object_array_put_idx() is that, if a user wants to insert an element inside a JSON array, the element will be replaced. For some cases, a user would want to insert an element into the JSON array and shift the elements to the right. For indexes that are outside the length of the current array this behaves like json_object_array_put_idx(). If a user wants to enforce that the JSON array is not expanded, then the json_object_array_length() function can be used to guard against that. The main driver for this change is JSON patch, where the 'add' operation in an array means inserting a value at a certain index and shifting everything by one. Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
178 lines
4.1 KiB
Plaintext
178 lines
4.1 KiB
Plaintext
|
|
/*
|
|
* Symbol versioning for libjson-c.
|
|
* All exported symbols must be listed here.
|
|
*
|
|
* See
|
|
* https://software.intel.com/sites/default/files/m/a/1/e/dsohowto.pdf
|
|
*/
|
|
|
|
/*
|
|
* Symbols in JSONC_PRIVATE are exported for historical
|
|
* reasons, but should not be used outside of json-c.
|
|
*/
|
|
JSONC_PRIVATE {
|
|
array_list_add;
|
|
array_list_del_idx;
|
|
array_list_free;
|
|
array_list_new;
|
|
array_list_put_idx;
|
|
array_list_sort;
|
|
json_hex_chars;
|
|
json_parse_double;
|
|
json_parse_int64;
|
|
json_parse_uint64;
|
|
lh_table_delete;
|
|
lh_table_delete_entry;
|
|
lh_table_free;
|
|
lh_table_insert;
|
|
lh_table_insert_w_hash;
|
|
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;
|
|
# Used by tests:
|
|
_json_c_strerror;
|
|
};
|
|
|
|
JSONC_0.14 {
|
|
global:
|
|
array_list_bsearch;
|
|
array_list_get_idx;
|
|
array_list_length;
|
|
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_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_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_length;
|
|
lh_table_lookup_entry;
|
|
lh_table_lookup_entry_w_hash;
|
|
lh_table_lookup_ex;
|
|
|
|
local:
|
|
*;
|
|
};
|
|
|
|
JSONC_0.15 {
|
|
global:
|
|
array_list_new2;
|
|
array_list_shrink;
|
|
json_object_array_shrink;
|
|
json_object_new_array_ext;
|
|
} JSONC_0.14;
|
|
|
|
JSONC_0.16 {
|
|
global:
|
|
json_object_array_insert_idx;
|
|
} JSONC_0.15;
|
|
|
|
JSONC_0.17 {
|
|
# global:
|
|
# ...new symbols here...
|
|
} JSONC_0.16;
|