From 079a40cd320ed3526ea7e4741cb7a118bc113b8d Mon Sep 17 00:00:00 2001 From: proddy Date: Sun, 19 Sep 2021 21:26:15 +0200 Subject: [PATCH] update to 16.18.4 --- lib/ArduinoJson/CHANGELOG.md | 8 ++++++++ lib/ArduinoJson/README.md | 4 ++-- .../src/ArduinoJson/Deserialization/Filter.hpp | 4 ++-- .../src/ArduinoJson/Deserialization/Reader.hpp | 2 +- lib/ArduinoJson/src/ArduinoJson/Json/Utf8.hpp | 18 +++++++++--------- .../Strings/Adapters/ArduinoStringAdapter.hpp | 3 +-- .../Strings/Adapters/ConstRamStringAdapter.hpp | 2 +- .../src/ArduinoJson/Variant/ConverterImpl.hpp | 2 +- .../src/ArduinoJson/Variant/VariantContent.hpp | 1 - lib/ArduinoJson/src/ArduinoJson/version.hpp | 4 ++-- 10 files changed, 27 insertions(+), 21 deletions(-) diff --git a/lib/ArduinoJson/CHANGELOG.md b/lib/ArduinoJson/CHANGELOG.md index a1bbc5d24..f368129f0 100644 --- a/lib/ArduinoJson/CHANGELOG.md +++ b/lib/ArduinoJson/CHANGELOG.md @@ -1,6 +1,14 @@ ArduinoJson: change log ======================= +v6.18.4 (2021-09-06) +------- + +* Fixed error `'dummy' may be used uninitialized` on GCC 11 +* Fixed error `expected unqualified-id before 'const'` on GCC 11 (issue #1622) +* Filter: exact match takes precedence over wildcard (issue #1628) +* Fixed deserialization of `\u0000` (issue #1646) + v6.18.3 (2021-07-27) ------- diff --git a/lib/ArduinoJson/README.md b/lib/ArduinoJson/README.md index a9dfbc7f5..da9849177 100644 --- a/lib/ArduinoJson/README.md +++ b/lib/ArduinoJson/README.md @@ -2,7 +2,7 @@ --- -[![arduino-library-badge](https://www.ardu-badge.com/badge/ArduinoJson.svg?version=6.18.3)](https://www.ardu-badge.com/ArduinoJson/6.18.3) +[![arduino-library-badge](https://www.ardu-badge.com/badge/ArduinoJson.svg?version=6.18.4)](https://www.ardu-badge.com/ArduinoJson/6.18.4) [![Continuous Integration](https://github.com/bblanchon/ArduinoJson/workflows/Continuous%20Integration/badge.svg?branch=6.x)](https://github.com/bblanchon/ArduinoJson/actions?query=workflow%3A%22Continuous+Integration%22+branch%3A6.x) [![Continuous Integration](https://ci.appveyor.com/api/projects/status/m7s53wav1l0abssg/branch/6.x?svg=true)](https://ci.appveyor.com/project/bblanchon/arduinojson/branch/6.x) [![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/arduinojson.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:arduinojson) @@ -78,7 +78,7 @@ ArduinoJson is a C++ JSON library for Arduino and IoT (Internet Of Things). * [Unit test coverage close to 100%](https://coveralls.io/github/bblanchon/ArduinoJson?branch=6.x) * Continuously tested on * [Visual Studio 2010, 2012, 2013, 2015, 2017, 2019](https://ci.appveyor.com/project/bblanchon/arduinojson/branch/6.x) - * [GCC 4.4, 4.6, 4.7, 4.8, 4.9, 5, 6, 7, 8, 9, 10](https://github.com/bblanchon/ArduinoJson/actions?query=workflow%3A%22Continuous+Integration%22) + * [GCC 4.4, 4.6, 4.7, 4.8, 4.9, 5, 6, 7, 8, 9, 10, 11](https://github.com/bblanchon/ArduinoJson/actions?query=workflow%3A%22Continuous+Integration%22) * [Clang 3.5, 3.6, 3.7, 3.8, 3.9, 4.0, 5.0, 6.0, 7, 8, 9, 10](https://github.com/bblanchon/ArduinoJson/actions?query=workflow%3A%22Continuous+Integration%22) * [Continuously fuzzed with Google OSS Fuzz](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:arduinojson) * Passes all default checks of [clang-tidy](https://releases.llvm.org/10.0.0/tools/clang/tools/extra/docs/clang-tidy/) diff --git a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Filter.hpp b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Filter.hpp index 7ea3078dc..de94b9400 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Filter.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Filter.hpp @@ -32,8 +32,8 @@ class Filter { Filter operator[](const TKey& key) const { if (_variant == true) // "true" means "allow recursively" return *this; - else - return Filter(_variant[key] | _variant["*"]); + VariantConstRef member = _variant[key]; + return Filter(member.isNull() ? _variant["*"] : member); } private: diff --git a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Reader.hpp b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Reader.hpp index 9ae2d5987..20f77afef 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Reader.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Reader.hpp @@ -17,7 +17,7 @@ struct Reader { Reader(TSource& source) : _source(&source) {} int read() { - return _source->read(); + return _source->read(); // Error here? You passed an unsupported input type } size_t readBytes(char* buffer, size_t length) { diff --git a/lib/ArduinoJson/src/ArduinoJson/Json/Utf8.hpp b/lib/ArduinoJson/src/ArduinoJson/Json/Utf8.hpp index a30f77a82..c8f11036b 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Json/Utf8.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Json/Utf8.hpp @@ -13,14 +13,14 @@ template inline void encodeCodepoint(uint32_t codepoint32, TStringBuilder& str) { // this function was optimize for code size on AVR - // a buffer to store the string in reverse - char buf[5]; - char* p = buf; - - *(p++) = 0; if (codepoint32 < 0x80) { - *(p++) = char((codepoint32)); + str.append(char(codepoint32)); } else { + // a buffer to store the string in reverse + char buf[5]; + char* p = buf; + + *(p++) = 0; *(p++) = char((codepoint32 | 0x80) & 0xBF); uint16_t codepoint16 = uint16_t(codepoint32 >> 6); if (codepoint16 < 0x20) { // 0x800 @@ -36,10 +36,10 @@ inline void encodeCodepoint(uint32_t codepoint32, TStringBuilder& str) { *(p++) = char(codepoint16 | 0xF0); } } - } - while (*(--p)) { - str.append(*p); + while (*(--p)) { + str.append(*p); + } } } } // namespace Utf8 diff --git a/lib/ArduinoJson/src/ArduinoJson/Strings/Adapters/ArduinoStringAdapter.hpp b/lib/ArduinoJson/src/ArduinoJson/Strings/Adapters/ArduinoStringAdapter.hpp index 5e4b62403..3d5204069 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Strings/Adapters/ArduinoStringAdapter.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Strings/Adapters/ArduinoStringAdapter.hpp @@ -45,8 +45,7 @@ class StringAdapter< ::String> { template <> class StringAdapter< ::StringSumHelper> : public StringAdapter< ::String> { public: - StringAdapter< ::StringSumHelper>(const ::String& s) - : StringAdapter< ::String>(s) {} + StringAdapter(const ::String& s) : StringAdapter< ::String>(s) {} }; } // namespace ARDUINOJSON_NAMESPACE diff --git a/lib/ArduinoJson/src/ArduinoJson/Strings/Adapters/ConstRamStringAdapter.hpp b/lib/ArduinoJson/src/ArduinoJson/Strings/Adapters/ConstRamStringAdapter.hpp index 1ca7c02cc..b4a696e25 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Strings/Adapters/ConstRamStringAdapter.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Strings/Adapters/ConstRamStringAdapter.hpp @@ -45,7 +45,7 @@ class StringAdapter { template class StringAdapter : public StringAdapter { public: - StringAdapter(const char* s) : StringAdapter(s) {} + StringAdapter(const char* s) : StringAdapter(s) {} }; } // namespace ARDUINOJSON_NAMESPACE diff --git a/lib/ArduinoJson/src/ArduinoJson/Variant/ConverterImpl.hpp b/lib/ArduinoJson/src/ArduinoJson/Variant/ConverterImpl.hpp index 33f8c6509..e3288c8bf 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Variant/ConverterImpl.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Variant/ConverterImpl.hpp @@ -27,7 +27,7 @@ struct Converter { } static bool checkJson(VariantConstRef src) { - T dummy; + T dummy = T(); // clang-format off return canConvertFromJson(src, dummy); // Error here? See https://arduinojson.org/v6/unsupported-is/ // clang-format on diff --git a/lib/ArduinoJson/src/ArduinoJson/Variant/VariantContent.hpp b/lib/ArduinoJson/src/ArduinoJson/Variant/VariantContent.hpp index 47bf09cc8..295261133 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Variant/VariantContent.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Variant/VariantContent.hpp @@ -12,7 +12,6 @@ namespace ARDUINOJSON_NAMESPACE { -// enum { VALUE_MASK = 0x7F, diff --git a/lib/ArduinoJson/src/ArduinoJson/version.hpp b/lib/ArduinoJson/src/ArduinoJson/version.hpp index 6ddc84486..2ad469206 100644 --- a/lib/ArduinoJson/src/ArduinoJson/version.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/version.hpp @@ -4,7 +4,7 @@ #pragma once -#define ARDUINOJSON_VERSION "6.18.3" +#define ARDUINOJSON_VERSION "6.18.4" #define ARDUINOJSON_VERSION_MAJOR 6 #define ARDUINOJSON_VERSION_MINOR 18 -#define ARDUINOJSON_VERSION_REVISION 3 +#define ARDUINOJSON_VERSION_REVISION 4