Swap the parameters of JsonVariant's constructor

This commit is contained in:
Benoit Blanchon
2023-06-20 18:03:53 +02:00
parent db2fb01795
commit 4c0fb4eb55
6 changed files with 14 additions and 15 deletions

View File

@ -32,8 +32,8 @@ class JsonArray : public detail::VariantOperators<JsonArray> {
// https://arduinojson.org/v6/api/jsonvariant/ // https://arduinojson.org/v6/api/jsonvariant/
operator JsonVariant() { operator JsonVariant() {
void* data = data_; // prevent warning cast-align void* data = data_; // prevent warning cast-align
return JsonVariant(resources_, return JsonVariant(reinterpret_cast<detail::VariantData*>(data),
reinterpret_cast<detail::VariantData*>(data)); resources_);
} }
// Returns a read-only reference to the array. // Returns a read-only reference to the array.
@ -46,7 +46,7 @@ class JsonArray : public detail::VariantOperators<JsonArray> {
// Returns a reference to the new element. // Returns a reference to the new element.
// https://arduinojson.org/v6/api/jsonarray/add/ // https://arduinojson.org/v6/api/jsonarray/add/
JsonVariant add() const { JsonVariant add() const {
return JsonVariant(resources_, collectionAddElement(data_, resources_)); return JsonVariant(collectionAddElement(data_, resources_), resources_);
} }
// Appends a value to the array. // Appends a value to the array.

View File

@ -36,7 +36,7 @@ class JsonArrayIterator {
: resources_(resources), slot_(slot) {} : resources_(resources), slot_(slot) {}
JsonVariant operator*() const { JsonVariant operator*() const {
return JsonVariant(resources_, slot_->data()); return JsonVariant(slot_->data(), resources_);
} }
Ptr<JsonVariant> operator->() { Ptr<JsonVariant> operator->() {
return operator*(); return operator*();

View File

@ -297,7 +297,7 @@ class JsonDocument : public detail::VariantOperators<const JsonDocument&> {
// Returns a reference to the new element. // Returns a reference to the new element.
// https://arduinojson.org/v6/api/jsondocument/add/ // https://arduinojson.org/v6/api/jsondocument/add/
FORCE_INLINE JsonVariant add() { FORCE_INLINE JsonVariant add() {
return JsonVariant(&resources_, data_.addElement(&resources_)); return JsonVariant(data_.addElement(&resources_), &resources_);
} }
// Appends a value to the root array. // Appends a value to the root array.
@ -352,7 +352,7 @@ class JsonDocument : public detail::VariantOperators<const JsonDocument&> {
private: private:
JsonVariant getVariant() { JsonVariant getVariant() {
return JsonVariant(&resources_, &data_); return JsonVariant(&data_, &resources_);
} }
JsonVariantConst getVariant() const { JsonVariantConst getVariant() const {

View File

@ -29,8 +29,8 @@ class JsonObject : public detail::VariantOperators<JsonObject> {
operator JsonVariant() const { operator JsonVariant() const {
void* data = data_; // prevent warning cast-align void* data = data_; // prevent warning cast-align
return JsonVariant(resources_, return JsonVariant(reinterpret_cast<detail::VariantData*>(data),
reinterpret_cast<detail::VariantData*>(data)); resources_);
} }
operator JsonObjectConst() const { operator JsonObjectConst() const {

View File

@ -19,7 +19,7 @@ class JsonPair {
if (slot) { if (slot) {
key_ = JsonString(slot->key(), slot->ownsKey() ? JsonString::Copied key_ = JsonString(slot->key(), slot->ownsKey() ? JsonString::Copied
: JsonString::Linked); : JsonString::Linked);
value_ = JsonVariant(resources, slot->data()); value_ = JsonVariant(slot->data(), resources);
} }
} }

View File

@ -19,7 +19,7 @@ class JsonVariant : public detail::VariantRefBase<JsonVariant>,
JsonVariant() : data_(0), resources_(0) {} JsonVariant() : data_(0), resources_(0) {}
// INTERNAL USE ONLY // INTERNAL USE ONLY
JsonVariant(detail::ResourceManager* resources, detail::VariantData* data) JsonVariant(detail::VariantData* data, detail::ResourceManager* resources)
: data_(data), resources_(resources) {} : data_(data), resources_(resources) {}
private: private:
@ -85,19 +85,18 @@ ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE
template <typename TDerived> template <typename TDerived>
inline JsonVariant VariantRefBase<TDerived>::add() const { inline JsonVariant VariantRefBase<TDerived>::add() const {
return JsonVariant( return JsonVariant(variantAddElement(getOrCreateData(), getResourceManager()),
getResourceManager(), getResourceManager());
variantAddElement(getOrCreateData(), getResourceManager()));
} }
template <typename TDerived> template <typename TDerived>
inline JsonVariant VariantRefBase<TDerived>::getVariant() const { inline JsonVariant VariantRefBase<TDerived>::getVariant() const {
return JsonVariant(getResourceManager(), getData()); return JsonVariant(getData(), getResourceManager());
} }
template <typename TDerived> template <typename TDerived>
inline JsonVariant VariantRefBase<TDerived>::getOrCreateVariant() const { inline JsonVariant VariantRefBase<TDerived>::getOrCreateVariant() const {
return JsonVariant(getResourceManager(), getOrCreateData()); return JsonVariant(getOrCreateData(), getResourceManager());
} }
template <typename TDerived> template <typename TDerived>