mirror of
https://github.com/eledio-devices/thirdparty-ArduinoJson.git
synced 2025-11-01 00:38:27 +01:00
accept() ignores pointers (6796,5602)
This commit is contained in:
@@ -25,7 +25,7 @@ class JsonSerializer : public Visitor<size_t> {
|
|||||||
VariantSlot *slot = array.head();
|
VariantSlot *slot = array.head();
|
||||||
|
|
||||||
while (slot != 0) {
|
while (slot != 0) {
|
||||||
slot->data()->accept(*this);
|
slot->data()->resolve()->accept(*this);
|
||||||
|
|
||||||
slot = slot->next();
|
slot = slot->next();
|
||||||
if (slot == 0)
|
if (slot == 0)
|
||||||
@@ -46,7 +46,7 @@ class JsonSerializer : public Visitor<size_t> {
|
|||||||
while (slot != 0) {
|
while (slot != 0) {
|
||||||
_formatter.writeString(slot->key());
|
_formatter.writeString(slot->key());
|
||||||
write(':');
|
write(':');
|
||||||
slot->data()->accept(*this);
|
slot->data()->resolve()->accept(*this);
|
||||||
|
|
||||||
slot = slot->next();
|
slot = slot->next();
|
||||||
if (slot == 0)
|
if (slot == 0)
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ class PrettyJsonSerializer : public JsonSerializer<TWriter> {
|
|||||||
_nesting++;
|
_nesting++;
|
||||||
while (slot != 0) {
|
while (slot != 0) {
|
||||||
indent();
|
indent();
|
||||||
slot->data()->accept(*this);
|
slot->data()->resolve()->accept(*this);
|
||||||
|
|
||||||
slot = slot->next();
|
slot = slot->next();
|
||||||
base::write(slot ? ",\r\n" : "\r\n");
|
base::write(slot ? ",\r\n" : "\r\n");
|
||||||
@@ -48,7 +48,7 @@ class PrettyJsonSerializer : public JsonSerializer<TWriter> {
|
|||||||
indent();
|
indent();
|
||||||
base::visitString(slot->key());
|
base::visitString(slot->key());
|
||||||
base::write(": ");
|
base::write(": ");
|
||||||
slot->data()->accept(*this);
|
slot->data()->resolve()->accept(*this);
|
||||||
|
|
||||||
slot = slot->next();
|
slot = slot->next();
|
||||||
base::write(slot ? ",\r\n" : "\r\n");
|
base::write(slot ? ",\r\n" : "\r\n");
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ class MsgPackSerializer : public Visitor<size_t> {
|
|||||||
writeInteger(uint32_t(n));
|
writeInteger(uint32_t(n));
|
||||||
}
|
}
|
||||||
for (VariantSlot* slot = array.head(); slot; slot = slot->next()) {
|
for (VariantSlot* slot = array.head(); slot; slot = slot->next()) {
|
||||||
slot->data()->accept(*this);
|
slot->data()->resolve()->accept(*this);
|
||||||
}
|
}
|
||||||
return bytesWritten();
|
return bytesWritten();
|
||||||
}
|
}
|
||||||
@@ -74,7 +74,7 @@ class MsgPackSerializer : public Visitor<size_t> {
|
|||||||
}
|
}
|
||||||
for (VariantSlot* slot = object.head(); slot; slot = slot->next()) {
|
for (VariantSlot* slot = object.head(); slot; slot = slot->next()) {
|
||||||
visitString(slot->key());
|
visitString(slot->key());
|
||||||
slot->data()->accept(*this);
|
slot->data()->resolve()->accept(*this);
|
||||||
}
|
}
|
||||||
return bytesWritten();
|
return bytesWritten();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -68,10 +68,6 @@ class VariantData {
|
|||||||
case VALUE_IS_BOOLEAN:
|
case VALUE_IS_BOOLEAN:
|
||||||
return visitor.visitBoolean(_content.asBoolean != 0);
|
return visitor.visitBoolean(_content.asBoolean != 0);
|
||||||
|
|
||||||
case VALUE_IS_POINTER: // P+0 G+46
|
|
||||||
ARDUINOJSON_ASSERT(_content.asPointer != 0);
|
|
||||||
return _content.asPointer->accept(visitor);
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return visitor.visitNull();
|
return visitor.visitNull();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ template <typename TVisitor>
|
|||||||
inline typename TVisitor::result_type variantAccept(const VariantData *var,
|
inline typename TVisitor::result_type variantAccept(const VariantData *var,
|
||||||
TVisitor &visitor) {
|
TVisitor &visitor) {
|
||||||
if (var != 0)
|
if (var != 0)
|
||||||
return var->accept(visitor);
|
return var->resolve()->accept(visitor);
|
||||||
else
|
else
|
||||||
return visitor.visitNull();
|
return visitor.visitNull();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user