diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index ed2c0eb09..78fbbf992 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -24,6 +24,6 @@ assignees: '' **What jsoncons library version?** - - [ ] Latest release 0.177.0 + - [ ] Latest release 0.178.0 - [ ] Other release ______ - [ ] master diff --git a/CHANGELOG.md b/CHANGELOG.md index 428c3b39a..227f17a24 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,32 @@ 0.178.0 (on master) ------- +Defect fixes: + +- Fixed issue with `jmespath::join function` through PR #546 + +- Fixed issue with the path for cmake config files through PR #547 + +- Made the basic_json constructor `basic_json(const Allocator&)` +consistent with `basic_json(json_object_arg_t, const Allocator& alloc = Allocator())`. + +- `basic_json` copy construction now applies allocator traits `select_on_container_copy_construction` +to the allocator obtained from `other`. For pmr allocators, this gives a default constructed pmr allocator rather +than a copy of the allocator in `other`. + +Enhancements: + +- Improved the implementation of `basic_json` swap. Previously in +some cases it would allocate. + +- Improved the implementation of `basic_json` copy assignment. +Reduced allocations when assigning from array to array and object to +object. + +- Documented the rules for `basic_json` allocators +[here](https://github.com/danielaparker/jsoncons/blob/master/doc/ref/corelib/json/allocators.md), +and added numerous tests for conformance to the rules. + 0.177.0 ------- diff --git a/README.md b/README.md index 44d09dd24..44eddbc81 100644 --- a/README.md +++ b/README.md @@ -71,7 +71,7 @@ _"really good"_ _"awesome project"_ _"very solid and very dependable"_ _"my team [Get started with HealthImaging image sets and image frames using an AWS SDK](https://docs.aws.amazon.com/healthimaging/latest/devguide/example_medical-imaging_Scenario_ImageSetsAndFrames_section.html) -[RubyGems.org](https://rubygems.org/gems/jsoncons/versions/0.1.3?locale=en)   [rjsoncons](https://cran.rstudio.com/web/packages/rjsoncons/index.html)   [coppeliarobotics](https://manual.coppeliarobotics.com/en/zmqRemoteApiOverview.htm) +[RubyGems.org](https://rubygems.org/gems/jsoncons/versions/0.1.3?locale=en)   [rjsoncons](https://cran.rstudio.com/web/packages/rjsoncons/index.html)   [Coppelia Robotics](https://manual.coppeliarobotics.com/en/zmqRemoteApiOverview.htm) ## Get jsoncons diff --git a/doc/ref/corelib/basic_json.md b/doc/ref/corelib/basic_json.md index 74aa10843..6f28d6da2 100644 --- a/doc/ref/corelib/basic_json.md +++ b/doc/ref/corelib/basic_json.md @@ -187,7 +187,7 @@ for their storage, otherwise attempts to return a default constructed allocator. - + diff --git a/doc/ref/corelib/json_type_traits/custom-specializations.md b/doc/ref/corelib/json_type_traits/custom-specializations.md index 8adf26a41..303b81bf1 100644 --- a/doc/ref/corelib/json_type_traits/custom-specializations.md +++ b/doc/ref/corelib/json_type_traits/custom-specializations.md @@ -270,7 +270,7 @@ using jsoncons::json; int main() { - json j(json::object_arg, {{"1",2},{"3",4}}); + json j(json_object_arg, {{"1",2},{"3",4}}); assert(j.is()); auto v = j.as(); json j2 = v; diff --git a/include/jsoncons/basic_json.hpp b/include/jsoncons/basic_json.hpp index 703104ddb..5a2586f7d 100644 --- a/include/jsoncons/basic_json.hpp +++ b/include/jsoncons/basic_json.hpp @@ -635,13 +635,7 @@ namespace jsoncons { : storage_kind_(static_cast(json_storage_kind::long_str)), short_str_length_(0), tag_(tag), ptr_(ptr) { } -/* - long_string_storage(const char_type* data, std::size_t length, semantic_tag tag, const Allocator& alloc) - : storage_kind_(static_cast(json_storage_kind::long_str)), short_str_length_(0), tag_(tag) - { - ptr_ = heap_string_factory_type::create(data, length, null_type(), alloc); - } -*/ + long_string_storage(const long_string_storage& other) : storage_kind_(static_cast(json_storage_kind::long_str)), short_str_length_(0), tag_(other.tag_), ptr_(other.ptr_) { diff --git a/include/jsoncons/config/version.hpp b/include/jsoncons/config/version.hpp index 5ec8c5eda..825efcd7b 100644 --- a/include/jsoncons/config/version.hpp +++ b/include/jsoncons/config/version.hpp @@ -10,7 +10,7 @@ #include #define JSONCONS_VERSION_MAJOR 0 -#define JSONCONS_VERSION_MINOR 177 +#define JSONCONS_VERSION_MINOR 178 #define JSONCONS_VERSION_PATCH 0 namespace jsoncons {
bool contains(const string_view_type& key) const noexceptbool contains(const string_view_type& key) const noexcept Returns true if an object has a member with the given key , otherwise false