mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-06 15:59:52 +03:00
updated arduinojson to 6.17.1
This commit is contained in:
@@ -1,6 +1,13 @@
|
|||||||
ArduinoJson: change log
|
ArduinoJson: change log
|
||||||
=======================
|
=======================
|
||||||
|
|
||||||
|
v6.17.1 (2020-11-07)
|
||||||
|
-------
|
||||||
|
|
||||||
|
* Fixed error `ambiguous overload for 'operator|'` (issue #1411)
|
||||||
|
* Fixed `operator|(MemberProxy, JsonObject)` (issue #1415)
|
||||||
|
* Allowed more than 32767 values in non-embedded mode (issue #1414)
|
||||||
|
|
||||||
v6.17.0 (2020-10-19)
|
v6.17.0 (2020-10-19)
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
|||||||
11
lib/ArduinoJson/CONTRIBUTING.md
Normal file
11
lib/ArduinoJson/CONTRIBUTING.md
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# Contribution to ArduinoJson
|
||||||
|
|
||||||
|
First, thank you for taking the time to contribute to this project.
|
||||||
|
|
||||||
|
You can submit changes via GitHub Pull Requests.
|
||||||
|
|
||||||
|
Please:
|
||||||
|
|
||||||
|
1. Unit test every change in behavior
|
||||||
|
2. Use clang-format in "file" mode to format the code
|
||||||
|
3. Consider using the Continuous Integration (Travis and AppVeyor)
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
[](https://www.ardu-badge.com/ArduinoJson/6.17.0)
|
[](https://www.ardu-badge.com/ArduinoJson/6.17.1)
|
||||||
[](https://ci.appveyor.com/project/bblanchon/arduinojson/branch/6.x)
|
[](https://ci.appveyor.com/project/bblanchon/arduinojson/branch/6.x)
|
||||||
[](https://travis-ci.org/bblanchon/ArduinoJson)
|
[](https://travis-ci.org/bblanchon/ArduinoJson)
|
||||||
[](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:arduinojson)
|
[](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:arduinojson)
|
||||||
|
|||||||
@@ -19,10 +19,13 @@ namespace ARDUINOJSON_NAMESPACE {
|
|||||||
template <typename TArray>
|
template <typename TArray>
|
||||||
class ElementProxy : public VariantOperators<ElementProxy<TArray> >,
|
class ElementProxy : public VariantOperators<ElementProxy<TArray> >,
|
||||||
public VariantShortcuts<ElementProxy<TArray> >,
|
public VariantShortcuts<ElementProxy<TArray> >,
|
||||||
public Visitable {
|
public Visitable,
|
||||||
|
public VariantTag {
|
||||||
typedef ElementProxy<TArray> this_type;
|
typedef ElementProxy<TArray> this_type;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
typedef VariantRef variant_type;
|
||||||
|
|
||||||
FORCE_INLINE ElementProxy(TArray array, size_t index)
|
FORCE_INLINE ElementProxy(TArray array, size_t index)
|
||||||
: _array(array), _index(index) {}
|
: _array(array), _index(index) {}
|
||||||
|
|
||||||
|
|||||||
@@ -83,6 +83,18 @@
|
|||||||
#define ARDUINOJSON_DEFAULT_NESTING_LIMIT 10
|
#define ARDUINOJSON_DEFAULT_NESTING_LIMIT 10
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Number of bits to store the pointer to next node
|
||||||
|
// (saves RAM but limits the number of values in a document)
|
||||||
|
#ifndef ARDUINOJSON_SLOT_OFFSET_SIZE
|
||||||
|
#if defined(__SIZEOF_POINTER__) && __SIZEOF_POINTER__ == 2
|
||||||
|
// Address space == 16-bit => max 127 values
|
||||||
|
#define ARDUINOJSON_SLOT_OFFSET_SIZE 1
|
||||||
|
#else
|
||||||
|
// Address space > 16-bit => max 32767 values
|
||||||
|
#define ARDUINOJSON_SLOT_OFFSET_SIZE 2
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#else // ARDUINOJSON_EMBEDDED_MODE
|
#else // ARDUINOJSON_EMBEDDED_MODE
|
||||||
|
|
||||||
// On a computer we have plenty of memory so we can use doubles
|
// On a computer we have plenty of memory so we can use doubles
|
||||||
@@ -114,6 +126,11 @@
|
|||||||
#define ARDUINOJSON_DEFAULT_NESTING_LIMIT 50
|
#define ARDUINOJSON_DEFAULT_NESTING_LIMIT 50
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Number of bits to store the pointer to next node
|
||||||
|
#ifndef ARDUINOJSON_SLOT_OFFSET_SIZE
|
||||||
|
#define ARDUINOJSON_SLOT_OFFSET_SIZE 4
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif // ARDUINOJSON_EMBEDDED_MODE
|
#endif // ARDUINOJSON_EMBEDDED_MODE
|
||||||
|
|
||||||
#ifdef ARDUINO
|
#ifdef ARDUINO
|
||||||
|
|||||||
@@ -21,10 +21,13 @@ namespace ARDUINOJSON_NAMESPACE {
|
|||||||
template <typename TObject, typename TStringRef>
|
template <typename TObject, typename TStringRef>
|
||||||
class MemberProxy : public VariantOperators<MemberProxy<TObject, TStringRef> >,
|
class MemberProxy : public VariantOperators<MemberProxy<TObject, TStringRef> >,
|
||||||
public VariantShortcuts<MemberProxy<TObject, TStringRef> >,
|
public VariantShortcuts<MemberProxy<TObject, TStringRef> >,
|
||||||
public Visitable {
|
public Visitable,
|
||||||
|
public VariantTag {
|
||||||
typedef MemberProxy<TObject, TStringRef> this_type;
|
typedef MemberProxy<TObject, TStringRef> this_type;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
typedef VariantRef variant_type;
|
||||||
|
|
||||||
FORCE_INLINE MemberProxy(TObject variant, TStringRef key)
|
FORCE_INLINE MemberProxy(TObject variant, TStringRef key)
|
||||||
: _object(variant), _key(key) {}
|
: _object(variant), _key(key) {}
|
||||||
|
|
||||||
|
|||||||
30
lib/ArduinoJson/src/ArduinoJson/Polyfills/integer.hpp
Normal file
30
lib/ArduinoJson/src/ArduinoJson/Polyfills/integer.hpp
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
// ArduinoJson - arduinojson.org
|
||||||
|
// Copyright Benoit Blanchon 2014-2020
|
||||||
|
// MIT License
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <stdint.h> // int8_t, int16_t
|
||||||
|
|
||||||
|
#include <ArduinoJson/Namespace.hpp>
|
||||||
|
|
||||||
|
namespace ARDUINOJSON_NAMESPACE {
|
||||||
|
|
||||||
|
template <int Bits>
|
||||||
|
struct int_t;
|
||||||
|
|
||||||
|
template <>
|
||||||
|
struct int_t<8> {
|
||||||
|
typedef int8_t type;
|
||||||
|
};
|
||||||
|
|
||||||
|
template <>
|
||||||
|
struct int_t<16> {
|
||||||
|
typedef int16_t type;
|
||||||
|
};
|
||||||
|
|
||||||
|
template <>
|
||||||
|
struct int_t<32> {
|
||||||
|
typedef int32_t type;
|
||||||
|
};
|
||||||
|
} // namespace ARDUINOJSON_NAMESPACE
|
||||||
@@ -9,6 +9,7 @@
|
|||||||
#include <ArduinoJson/Polyfills/attributes.hpp>
|
#include <ArduinoJson/Polyfills/attributes.hpp>
|
||||||
#include <ArduinoJson/Polyfills/type_traits.hpp>
|
#include <ArduinoJson/Polyfills/type_traits.hpp>
|
||||||
#include <ArduinoJson/Variant/VariantAs.hpp>
|
#include <ArduinoJson/Variant/VariantAs.hpp>
|
||||||
|
#include <ArduinoJson/Variant/VariantTag.hpp>
|
||||||
|
|
||||||
namespace ARDUINOJSON_NAMESPACE {
|
namespace ARDUINOJSON_NAMESPACE {
|
||||||
|
|
||||||
@@ -17,23 +18,23 @@ CompareResult compare(const T1 &lhs, const T2 &rhs); // VariantCompare.cpp
|
|||||||
|
|
||||||
template <typename TVariant>
|
template <typename TVariant>
|
||||||
struct VariantOperators {
|
struct VariantOperators {
|
||||||
// Returns the default value if the VariantRef is undefined of incompatible
|
// Returns the default value if the VariantRef is undefined or incompatible
|
||||||
template <typename T>
|
template <typename T>
|
||||||
friend typename enable_if<!IsVisitable<T>::value, T>::type operator|(
|
friend typename enable_if<!IsVariant<T>::value, T>::type operator|(
|
||||||
const TVariant &variant, const T &defaultValue) {
|
const TVariant &variant, T defaultValue) {
|
||||||
if (variant.template is<T>())
|
if (variant.template is<T>())
|
||||||
return variant.template as<T>();
|
return variant.template as<T>();
|
||||||
else
|
else
|
||||||
return defaultValue;
|
return defaultValue;
|
||||||
}
|
}
|
||||||
|
// Returns the default value if the VariantRef is undefined or incompatible
|
||||||
// Returns the default value if the VariantRef is undefined of incompatible
|
|
||||||
// Special case for string: null is treated as undefined
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
friend typename enable_if<is_same<T, const char *>::value, T>::type operator|(
|
friend typename enable_if<IsVariant<T>::value, typename T::variant_type>::type
|
||||||
const TVariant &variant, T defaultValue) {
|
operator|(const TVariant &variant, T defaultValue) {
|
||||||
const char *value = variant.template as<const char *>();
|
if (variant)
|
||||||
return value ? value : defaultValue;
|
return variant;
|
||||||
|
else
|
||||||
|
return defaultValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// value == TVariant
|
// value == TVariant
|
||||||
|
|||||||
@@ -16,6 +16,7 @@
|
|||||||
#include <ArduinoJson/Variant/VariantOperators.hpp>
|
#include <ArduinoJson/Variant/VariantOperators.hpp>
|
||||||
#include <ArduinoJson/Variant/VariantRef.hpp>
|
#include <ArduinoJson/Variant/VariantRef.hpp>
|
||||||
#include <ArduinoJson/Variant/VariantShortcuts.hpp>
|
#include <ArduinoJson/Variant/VariantShortcuts.hpp>
|
||||||
|
#include <ArduinoJson/Variant/VariantTag.hpp>
|
||||||
|
|
||||||
namespace ARDUINOJSON_NAMESPACE {
|
namespace ARDUINOJSON_NAMESPACE {
|
||||||
|
|
||||||
@@ -23,12 +24,9 @@ namespace ARDUINOJSON_NAMESPACE {
|
|||||||
class ArrayRef;
|
class ArrayRef;
|
||||||
class ObjectRef;
|
class ObjectRef;
|
||||||
|
|
||||||
template <typename, typename>
|
|
||||||
class MemberProxy;
|
|
||||||
|
|
||||||
// Contains the methods shared by VariantRef and VariantConstRef
|
// Contains the methods shared by VariantRef and VariantConstRef
|
||||||
template <typename TData>
|
template <typename TData>
|
||||||
class VariantRefBase {
|
class VariantRefBase : public VariantTag {
|
||||||
public:
|
public:
|
||||||
// Tells wether the variant has the specified type.
|
// Tells wether the variant has the specified type.
|
||||||
// Returns true if the variant has type type T, false otherwise.
|
// Returns true if the variant has type type T, false otherwise.
|
||||||
|
|||||||
@@ -4,15 +4,15 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <stdint.h> // int8_t, int16_t
|
#include <ArduinoJson/Polyfills/integer.hpp>
|
||||||
|
#include <ArduinoJson/Polyfills/limits.hpp>
|
||||||
#include <ArduinoJson/Polyfills/type_traits.hpp>
|
#include <ArduinoJson/Polyfills/type_traits.hpp>
|
||||||
#include <ArduinoJson/Strings/StoragePolicy.hpp>
|
#include <ArduinoJson/Strings/StoragePolicy.hpp>
|
||||||
#include <ArduinoJson/Variant/VariantContent.hpp>
|
#include <ArduinoJson/Variant/VariantContent.hpp>
|
||||||
|
|
||||||
namespace ARDUINOJSON_NAMESPACE {
|
namespace ARDUINOJSON_NAMESPACE {
|
||||||
|
|
||||||
typedef conditional<sizeof(void*) <= 2, int8_t, int16_t>::type VariantSlotDiff;
|
typedef int_t<ARDUINOJSON_SLOT_OFFSET_SIZE * 8>::type VariantSlotDiff;
|
||||||
|
|
||||||
class VariantSlot {
|
class VariantSlot {
|
||||||
// CAUTION: same layout as VariantData
|
// CAUTION: same layout as VariantData
|
||||||
@@ -61,11 +61,19 @@ class VariantSlot {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void setNext(VariantSlot* slot) {
|
void setNext(VariantSlot* slot) {
|
||||||
|
ARDUINOJSON_ASSERT(!slot || slot - this >=
|
||||||
|
numeric_limits<VariantSlotDiff>::lowest());
|
||||||
|
ARDUINOJSON_ASSERT(!slot || slot - this <=
|
||||||
|
numeric_limits<VariantSlotDiff>::highest());
|
||||||
_next = VariantSlotDiff(slot ? slot - this : 0);
|
_next = VariantSlotDiff(slot ? slot - this : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void setNextNotNull(VariantSlot* slot) {
|
void setNextNotNull(VariantSlot* slot) {
|
||||||
ARDUINOJSON_ASSERT(slot != 0);
|
ARDUINOJSON_ASSERT(slot != 0);
|
||||||
|
ARDUINOJSON_ASSERT(slot - this >=
|
||||||
|
numeric_limits<VariantSlotDiff>::lowest());
|
||||||
|
ARDUINOJSON_ASSERT(slot - this <=
|
||||||
|
numeric_limits<VariantSlotDiff>::highest());
|
||||||
_next = VariantSlotDiff(slot - this);
|
_next = VariantSlotDiff(slot - this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
16
lib/ArduinoJson/src/ArduinoJson/Variant/VariantTag.hpp
Normal file
16
lib/ArduinoJson/src/ArduinoJson/Variant/VariantTag.hpp
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
// ArduinoJson - arduinojson.org
|
||||||
|
// Copyright Benoit Blanchon 2014-2020
|
||||||
|
// MIT License
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <ArduinoJson/Namespace.hpp>
|
||||||
|
|
||||||
|
namespace ARDUINOJSON_NAMESPACE {
|
||||||
|
|
||||||
|
struct VariantTag {};
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
struct IsVariant : is_base_of<VariantTag, T> {};
|
||||||
|
|
||||||
|
} // namespace ARDUINOJSON_NAMESPACE
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#define ARDUINOJSON_VERSION "6.17.0"
|
#define ARDUINOJSON_VERSION "6.17.1"
|
||||||
#define ARDUINOJSON_VERSION_MAJOR 6
|
#define ARDUINOJSON_VERSION_MAJOR 6
|
||||||
#define ARDUINOJSON_VERSION_MINOR 17
|
#define ARDUINOJSON_VERSION_MINOR 17
|
||||||
#define ARDUINOJSON_VERSION_REVISION 0
|
#define ARDUINOJSON_VERSION_REVISION 1
|
||||||
|
|||||||
@@ -1,90 +0,0 @@
|
|||||||
# ArduinoJson - arduinojson.org
|
|
||||||
# Copyright Benoit Blanchon 2014-2020
|
|
||||||
# MIT License
|
|
||||||
|
|
||||||
# I have no idea what this is about, I simply followed the instructions from:
|
|
||||||
# https://dominikberner.ch/cmake-interface-lib/
|
|
||||||
|
|
||||||
add_library(ArduinoJson INTERFACE)
|
|
||||||
|
|
||||||
include(GNUInstallDirs)
|
|
||||||
|
|
||||||
# Adding the install interface generator expression makes sure that the include
|
|
||||||
# files are installed to the proper location (provided by GNUInstallDirs)
|
|
||||||
target_include_directories(ArduinoJson
|
|
||||||
INTERFACE
|
|
||||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
|
|
||||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
|
||||||
)
|
|
||||||
|
|
||||||
target_compile_definitions(ArduinoJson
|
|
||||||
INTERFACE
|
|
||||||
ARDUINOJSON_DEBUG=$<CONFIG:Debug>
|
|
||||||
)
|
|
||||||
|
|
||||||
# locations are provided by GNUInstallDirs
|
|
||||||
install(
|
|
||||||
TARGETS
|
|
||||||
ArduinoJson
|
|
||||||
EXPORT
|
|
||||||
ArduinoJson_Targets
|
|
||||||
ARCHIVE DESTINATION
|
|
||||||
${CMAKE_INSTALL_LIBDIR}
|
|
||||||
LIBRARY DESTINATION
|
|
||||||
${CMAKE_INSTALL_LIBDIR}
|
|
||||||
RUNTIME DESTINATION
|
|
||||||
${CMAKE_INSTALL_BINDIR}
|
|
||||||
)
|
|
||||||
|
|
||||||
include(CMakePackageConfigHelpers)
|
|
||||||
|
|
||||||
if(${CMAKE_VERSION} VERSION_GREATER "3.14.0")
|
|
||||||
set(ARCH_INDEPENDENT "ARCH_INDEPENDENT")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
write_basic_package_version_file(
|
|
||||||
"${PROJECT_BINARY_DIR}/ArduinoJsonConfigVersion.cmake"
|
|
||||||
VERSION
|
|
||||||
${PROJECT_VERSION}
|
|
||||||
COMPATIBILITY
|
|
||||||
SameMajorVersion
|
|
||||||
${ARCH_INDEPENDENT}
|
|
||||||
)
|
|
||||||
|
|
||||||
configure_package_config_file(
|
|
||||||
"${PROJECT_SOURCE_DIR}/extras/ArduinoJsonConfig.cmake.in"
|
|
||||||
"${PROJECT_BINARY_DIR}/ArduinoJsonConfig.cmake"
|
|
||||||
INSTALL_DESTINATION
|
|
||||||
${CMAKE_INSTALL_DATAROOTDIR}/ArduinoJson/cmake)
|
|
||||||
|
|
||||||
install(
|
|
||||||
EXPORT
|
|
||||||
ArduinoJson_Targets
|
|
||||||
FILE
|
|
||||||
ArduinoJsonTargets.cmake
|
|
||||||
DESTINATION
|
|
||||||
${CMAKE_INSTALL_DATAROOTDIR}/ArduinoJson/cmake
|
|
||||||
)
|
|
||||||
|
|
||||||
install(
|
|
||||||
FILES
|
|
||||||
"${PROJECT_BINARY_DIR}/ArduinoJsonConfig.cmake"
|
|
||||||
"${PROJECT_BINARY_DIR}/ArduinoJsonConfigVersion.cmake"
|
|
||||||
DESTINATION
|
|
||||||
"${CMAKE_INSTALL_DATAROOTDIR}/ArduinoJson/cmake"
|
|
||||||
)
|
|
||||||
|
|
||||||
install(
|
|
||||||
FILES
|
|
||||||
ArduinoJson.h
|
|
||||||
ArduinoJson.hpp
|
|
||||||
DESTINATION
|
|
||||||
include
|
|
||||||
)
|
|
||||||
|
|
||||||
install(
|
|
||||||
DIRECTORY
|
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/ArduinoJson"
|
|
||||||
DESTINATION
|
|
||||||
include
|
|
||||||
)
|
|
||||||
Reference in New Issue
Block a user