commit 83965c9474dcd35da6bffaa00f0e715986e70d74 Author: Emmanuele Bassi Date: Tue Mar 1 16:16:05 2016 +0000 Release JSON-GLib 1.1.2 (snapshot) NEWS | 15 +++++++++++++++ configure.ac | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) commit f0dfe4f84c924953585db3d53c568cfe7813226a Author: Emmanuele Bassi Date: Tue Mar 1 16:18:24 2016 +0000 build: Update gitignore generation rule build/autotools/Makefile.am.gitignore | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) commit 5e186395aecb256a67a9d06c1749393be681ae38 Author: Emmanuele Bassi Date: Tue Mar 1 16:02:28 2016 +0000 fixup! docs: Fix the Since tags json-glib/json-types.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 438ca10a27f2732173b345a0ca359d1b8f59c2f6 Author: Emmanuele Bassi Date: Tue Mar 1 15:05:13 2016 +0000 parser: Rename `immutable` bit field json-glib/json-parser.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit a43a9451b0cf9ebc03c651b5688f0fad56e3bacb Author: Emmanuele Bassi Date: Tue Mar 1 15:02:19 2016 +0000 docs: Fix the Since tags The newly added API is available since 1.2. json-glib/json-array.c | 8 ++++---- json-glib/json-builder.c | 4 ++-- json-glib/json-node.c | 20 ++++++++++---------- json-glib/json-object.c | 12 ++++++------ json-glib/json-parser.c | 4 ++-- json-glib/json-value.c | 2 +- 6 files changed, 25 insertions(+), 25 deletions(-) commit 6ddbc94c9888e5ddcd1cbb15845d2f1b5524b3ed Author: Philip Withnall Date: Tue Mar 1 15:01:07 2016 +0000 core: Add JSON node, object, array hashes Now that these objects can be marked as immutable, it is possible to calculate and cache hash values for each of them. This allows efficient hash-based deduplication of large numbers of JSON nodes, as needed by Walbottle for JSON test vector generation. To complement the new hash functions, each of JsonNode, JsonValue, JsonObject and JsonArray also now have an equal() comparison method. This compares them structurally and recursively, using the definition of equality from the JSON Schema specification, which seems as good as any other. http://json-schema.org/latest/json-schema-core.html#anchor9 https://bugzilla.gnome.org/show_bug.cgi?id=756121 Signed-off-by: Emmanuele Bassi doc/reference/json-glib-sections.txt | 11 ++ json-glib/json-array.c | 104 ++++++++++++++- json-glib/json-node.c | 245 +++++++++++++++++++++++++++++++++++ json-glib/json-object.c | 99 +++++++++++++- json-glib/json-parser.c | 8 +- json-glib/json-types-private.h | 5 + json-glib/json-types.h | 27 ++++ json-glib/json-value.c | 45 +++++++ 8 files changed, 530 insertions(+), 14 deletions(-) commit 1de237a502ceee96df7091c2df4492b8bc08b2c5 Author: Philip Withnall Date: Sat Nov 7 17:38:22 2015 +0100 node: Add json_node_ref() and json_node_unref() Add reference counting semantics to JsonNode, in addition to the existing init/unset and alloc/free semantics. json_node_free() must only be used with nodes allocated using json_node_alloc(). json_node_unref() may be used with all nodes (if correctly paired; it may be paired with json_node_alloc()). It is not valid to call json_node_free() on a node whose reference count is not 1. https://bugzilla.gnome.org/show_bug.cgi?id=756121 doc/reference/json-glib-sections.txt | 2 + json-glib/json-array.c | 6 +- json-glib/json-builder.c | 4 +- json-glib/json-generator.c | 4 +- json-glib/json-gobject.c | 4 +- json-glib/json-gvariant.c | 2 +- json-glib/json-node.c | 129 ++++++++++++++++++++++++++--------- json-glib/json-object.c | 4 +- json-glib/json-parser.c | 24 +++---- json-glib/json-path.c | 4 +- json-glib/json-reader.c | 4 +- json-glib/json-types-private.h | 13 +++- json-glib/json-types.h | 5 ++ 13 files changed, 141 insertions(+), 64 deletions(-) commit 58f479b60eb2db4c73605d469d68a8ffd8679327 Author: Philip Withnall Date: Sat Nov 7 14:17:31 2015 +0100 core: Add immutability support to core objects Add an immutable mode to JsonNode, JsonObject, JsonArray and JsonValue. This is an optional mode which objects enter by calling json_*_seal(). It is a one-way transition, which means that we can build and manipulate objects as much as desired, before sealing them and enjoying the benefits of immutable objects: no need to take copies when handling them, persistent hash values (still to be implemented). https://bugzilla.gnome.org/show_bug.cgi?id=756121 doc/reference/json-glib-sections.txt | 8 + json-glib/json-array.c | 48 ++++++ json-glib/json-builder.c | 106 ++++++++++++ json-glib/json-builder.h | 2 + json-glib/json-node.c | 127 +++++++++++++- json-glib/json-object.c | 51 ++++++ json-glib/json-parser.c | 108 ++++++++++++ json-glib/json-parser.h | 2 + json-glib/json-types-private.h | 7 + json-glib/json-types.h | 13 ++ json-glib/json-value.c | 23 +++ json-glib/tests/node.c | 320 +++++++++++++++++++++++++++++++++++ 12 files changed, 810 insertions(+), 5 deletions(-) commit a82b93ba60dd0f54660990df86ba0cf7fc74c9a8 Author: Cédric Valmary Date: Mon Feb 29 19:41:32 2016 +0000 Updated Occitan translation po/oc.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8ff4ca0a807e8bb04081bcf47e7a9951edd70ac9 Author: Emmanuele Bassi Date: Mon Feb 29 00:31:57 2016 +0000 format: Silence a compiler warning json-glib/json-glib-format.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 130190ed1ca0387b4bc22b15b0e1a910e961c667 Author: Emmanuele Bassi Date: Mon Feb 29 00:27:59 2016 +0000 Add autoptr macros GLib can take advantage of the "cleanup" attribute by using a bunch of macro magic. This has been slowly been used across various libraries in the G* stack, so JSON-GLib should provide symbols for the automatic memory management of its types. json-glib/json-builder.h | 4 ++++ json-glib/json-generator.h | 4 ++++ json-glib/json-parser.h | 4 ++++ json-glib/json-path.h | 4 ++++ json-glib/json-reader.h | 4 ++++ json-glib/json-types.h | 6 ++++++ 6 files changed, 26 insertions(+) commit a1490d9b6a3a21774d68f085f805d5f7a68b305e Author: Emmanuele Bassi Date: Thu Feb 25 09:42:54 2016 +0000 parser: Detect missing commas in arrays Just like we detect trailing commas, we should also detect missing ones to avoid parsing invalid JSON successfully. json-glib/json-parser.c | 15 ++++++++++++++- json-glib/tests/invalid.c | 31 +++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 1 deletion(-) commit c34b3541f9d2cb388bc20fecc9cf412d6ab0716d Author: Emmanuele Bassi Date: Thu Feb 25 09:41:38 2016 +0000 parser: Correctly increment the array index counter We pass the counter to the JsonParser::array-element signal, but we never really increment it. json-glib/json-parser.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 28c7347150d24383114f06457c3a8d5f5d8eab00 Author: Philip Withnall Date: Sat Nov 7 18:01:54 2015 +0100 core: Remove atomic operations for reference counting They are not needed — json-glib is not at all thread safe. json-glib/json-array.c | 4 ++-- json-glib/json-object.c | 4 ++-- json-glib/json-value.c | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) commit d8720da7ec351e5f15f6ce7baf96434ea42bb111 Author: Philip Withnall Date: Sat Nov 7 15:20:28 2015 +0100 array: Ensure JsonArray is zero-initialised json-glib/json-array.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit db7c76dcdc56ccaaa06051ccde5db808783bef22 Author: Robert Ancell Date: Tue Nov 24 21:15:38 2015 +1300 Fix code returning FALSE when it should be NULL json-glib/json-reader.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e5c11ba342122981a1e3081eb7f82217a0ebb431 Author: Philip Withnall Date: Thu Nov 19 17:49:47 2015 +0000 docs: Fix section title doc/reference/json-glib-docs.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1843dd381ebbe6ea62c2d8b91588eb4dab7c5bab Author: Emmanuele Bassi Date: Fri Nov 13 13:40:13 2015 +0000 docs: Fix URL of the project page README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3e0985cbb3399af8bece24a2933b9045edcc7a74 Author: Philip Withnall Date: Fri Nov 6 11:23:45 2015 +0100 types: Tweak dummy padding in JsonObjectIter Use padding which resembles the ABI structure of GHashTableIter so that our struct size is the same as GHashTableIter on all platforms, rather than just on x86_64. This fixes the static assertion failure on i386 and armhf. https://bugzilla.gnome.org/show_bug.cgi?id=757675 json-glib/json-types.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit c0607bee11fae7963d64de6556d2dea84310ca63 Author: Cédric Valmary Date: Sat Oct 31 09:10:45 2015 +0000 Updated Occitan translation po/oc.po | 201 +++++++++++++++++++++++++++++++++++++-------------------------- 1 file changed, 117 insertions(+), 84 deletions(-) commit d720ff7b5447817933f1af38a7f03d0f7ac0b302 Author: Daniel Șerbănescu Date: Sat Oct 24 19:37:07 2015 +0000 Added Romanian translation po/ro.po | 265 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 265 insertions(+) commit d231976e240f2244c60df26a1a6600ecb325506a Author: Philip Withnall Date: Thu Sep 24 11:06:34 2015 +0100 object: Add JsonObjectIter to ease iteration over JsonObject members This is a stack-allocated iterator object similar to GHashTableIter which allows allocation-free iteration over the members in a JsonObject. It differs from json_object_foreach_member() in the order in which it iterates — for JsonObjectIter the order is undefined. https://bugzilla.gnome.org/show_bug.cgi?id=755509 doc/reference/json-glib-sections.txt | 3 ++ json-glib/json-object.c | 71 ++++++++++++++++++++++++++++++++++++ json-glib/json-types-private.h | 9 +++++ json-glib/json-types.h | 26 +++++++++++++ json-glib/tests/object.c | 28 ++++++++++++++ 5 files changed, 137 insertions(+) commit 5185a8f8a58e5b455116eaa8c99c4b4c38a45929 Author: Iain Lane Date: Fri Oct 2 11:28:38 2015 +0100 tests/builder: Don't duplicate test names GLib 2.46.0 forbids this and so the testsuite fails. https://bugzilla.gnome.org/show_bug.cgi?id=755977 json-glib/tests/builder.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bfbc0b48e9256473491755766c079f73bee80724 Author: Philip Withnall Date: Tue Sep 1 10:05:23 2015 +0100 lib: Trivial documentation clarifications Clarify the documentation for json_node_set_object() and json_object_get_array_member(). https://bugzilla.gnome.org/show_bug.cgi?id=754384 json-glib/json-node.c | 4 +++- json-glib/json-object.c | 6 ++++-- 2 files changed, 7 insertions(+), 3 deletions(-) commit 54fedc974f0c0548951454125cd2b2f35528fa67 Author: Piotr Drąg Date: Wed Aug 26 19:43:15 2015 +0200 Updated Polish translation po/pl.po | 118 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 59 insertions(+), 59 deletions(-) commit 8fd3660b4bc7e764cc57d11bbba8ef3a0ab2ee7d Author: Philip Withnall Date: Fri Feb 6 15:10:35 2015 +0000 reader: Clarify use of json_reader_end_[element|member]() with errors Include an example showing that the end function must be called on both code paths (success and failure) if the reader object is to be used afterwards. https://bugzilla.gnome.org/show_bug.cgi?id=744100 json-glib/json-reader.c | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) commit f7eb50b5b03ee5870e476135bd989cb49d8d44c2 Author: Emmanuele Bassi Date: Tue Aug 18 14:04:05 2015 +0100 array: Do not create a null node for empty strings The two are fairly different, and JsonObject does not behave this way. https://bugzilla.gnome.org/show_bug.cgi?id=730803 json-glib/json-array.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4c1485acaa0f7267c87a37477f43808924e5aece Author: Anders Jonsson Date: Sun Aug 9 21:42:03 2015 +0000 Updated Swedish translation po/sv.po | 89 ++++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 45 insertions(+), 44 deletions(-) commit 157820c544291512cfde3e224e6b0af0ab2997cb Author: Pedro Albuquerque Date: Wed Jul 1 22:01:02 2015 +0000 Updated Portuguese translation po/pt.po | 102 +++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 53 insertions(+), 49 deletions(-) commit 3ae9c9e82dc2423b8f6af23ae2b5d08d30f6b575 Author: Emmanuele Bassi Date: Tue Jun 9 12:56:13 2015 +0100 parser: Port to GTask GSimpleAsyncResult is deprecated in GLib 2.46, so we should drop its use, and simplify the code in the process. json-glib/json-parser.c | 180 +++++++++++++++++------------------------------- 1 file changed, 62 insertions(+), 118 deletions(-) commit 155991af58d451cf8c4ccfaed432a959f1687b1c Author: Emmanuele Bassi Date: Tue Jun 9 12:29:06 2015 +0100 docs: Add 1.2 symbols index doc/reference/json-glib-docs.xml | 5 +++++ 1 file changed, 5 insertions(+) commit fd443041b5243dbb5748ce132c5c14b1c52f23fa Author: Emmanuele Bassi Date: Tue Jun 9 12:28:57 2015 +0100 docs: Add missing symbols doc/reference/json-glib-sections.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit b6546a62362bafcb0aa2d97175a15c4218cc6023 Author: Emmanuele Bassi Date: Tue Jun 9 12:23:12 2015 +0100 Add simple JSON/string utilities Wrap JsonParser and JsonGenerator in simple, easy to call functions that manage the objects for you. doc/reference/json-glib-docs.xml | 5 ++ doc/reference/json-glib-sections.txt | 6 ++ json-glib/Makefile.am | 2 + json-glib/json-glib.h | 1 + json-glib/json-utils.c | 103 +++++++++++++++++++++++++++++++++++ json-glib/json-utils.h | 40 ++++++++++++++ json-glib/json-version-macros.h | 16 ++++++ 7 files changed, 173 insertions(+) commit 445a787757eb08afeee61a6c5fdbd6622c43d0af Author: Emmanuele Bassi Date: Tue Jun 9 12:24:15 2015 +0100 Bump up version to 1.1.1 New development cycle, for new API. configure.ac | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit b3b996bbdf704bb7488493a8262aff3dc282d496 Author: Cédric Valmary Date: Thu May 21 17:12:58 2015 +0000 Added Occitan translation po/oc.po | 235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 235 insertions(+) commit a7b081b736e632405b36e34bbd01040bde115f92 Author: Emmanuele Bassi Date: Sun Mar 15 17:52:28 2015 +0000 Post-release version bump to 1.0.5 configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)