forked from bblanchon/ArduinoJson
Add a constructor to VariantData
This commit is contained in:
@@ -41,7 +41,7 @@ class JsonDocument : public detail::VariantOperators<const JsonDocument&> {
|
||||
// https://arduinojson.org/v6/api/jsondocument/clear/
|
||||
void clear() {
|
||||
_pool.clear();
|
||||
_data.init();
|
||||
_data.setNull();
|
||||
}
|
||||
|
||||
// Returns true if the root is of the specified type.
|
||||
@@ -277,17 +277,11 @@ class JsonDocument : public detail::VariantOperators<const JsonDocument&> {
|
||||
}
|
||||
|
||||
protected:
|
||||
JsonDocument() : _pool(0, 0) {
|
||||
_data.init();
|
||||
}
|
||||
JsonDocument() : _pool(0, 0) {}
|
||||
|
||||
JsonDocument(detail::MemoryPool pool) : _pool(pool) {
|
||||
_data.init();
|
||||
}
|
||||
JsonDocument(detail::MemoryPool pool) : _pool(pool) {}
|
||||
|
||||
JsonDocument(char* buf, size_t capa) : _pool(buf, capa) {
|
||||
_data.init();
|
||||
}
|
||||
JsonDocument(char* buf, size_t capa) : _pool(buf, capa) {}
|
||||
|
||||
~JsonDocument() {}
|
||||
|
||||
|
||||
@@ -146,7 +146,6 @@ inline bool parseNumber(const char* s, VariantData& result) {
|
||||
template <typename T>
|
||||
inline T parseNumber(const char* s) {
|
||||
VariantData value;
|
||||
value.init(); // VariantData is a POD, so it has no constructor
|
||||
parseNumber(s, value);
|
||||
return Converter<T>::fromJson(JsonVariantConst(&value));
|
||||
}
|
||||
|
||||
@@ -11,16 +11,6 @@
|
||||
#include <ArduinoJson/Strings/StringAdapters.hpp>
|
||||
#include <ArduinoJson/Variant/VariantContent.hpp>
|
||||
|
||||
// VariantData can't have a constructor (to be a POD), so we have no way to fix
|
||||
// this warning
|
||||
#if defined(__GNUC__)
|
||||
# if __GNUC__ >= 7
|
||||
# pragma GCC diagnostic push
|
||||
# pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
|
||||
# pragma GCC diagnostic ignored "-Wuninitialized"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE
|
||||
|
||||
class VariantData {
|
||||
@@ -28,14 +18,7 @@ class VariantData {
|
||||
uint8_t _flags;
|
||||
|
||||
public:
|
||||
// Must be a POD!
|
||||
// - no constructor
|
||||
// - no destructor
|
||||
// - no virtual
|
||||
// - no inheritance
|
||||
void init() {
|
||||
_flags = VALUE_IS_NULL;
|
||||
}
|
||||
VariantData() : _flags(VALUE_IS_NULL) {}
|
||||
|
||||
void operator=(const VariantData& src) {
|
||||
_content = src._content;
|
||||
@@ -337,9 +320,3 @@ class VariantData {
|
||||
};
|
||||
|
||||
ARDUINOJSON_END_PRIVATE_NAMESPACE
|
||||
|
||||
#if defined(__GNUC__)
|
||||
# if __GNUC__ >= 8
|
||||
# pragma GCC diagnostic pop
|
||||
# endif
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user