link() takes a JsonVariantConst

This commit is contained in:
Benoit Blanchon
2022-03-10 14:45:50 +01:00
parent 2dc0600bd4
commit 0b2eebeabc
6 changed files with 10 additions and 8 deletions

View File

@@ -51,7 +51,7 @@ union VariantContent {
UInt asUnsignedInteger;
Integer asSignedInteger;
CollectionData asCollection;
class VariantData *asPointer;
const class VariantData *asPointer;
struct {
const char *data;
size_t size;

View File

@@ -212,7 +212,7 @@ class VariantData {
setType(VALUE_IS_NULL);
}
void setPointer(VariantData *value) {
void setPointer(const VariantData *value) {
setType(VALUE_IS_POINTER);
_content.asPointer = value;
}

View File

@@ -181,4 +181,9 @@ bool CopyStringStoragePolicy::store(TAdaptedString str, MemoryPool *pool,
return copy != 0;
}
inline void VariantRef::link(VariantConstRef var) {
if (_data)
_data->setPointer(var._data);
}
} // namespace ARDUINOJSON_NAMESPACE

View File

@@ -198,10 +198,7 @@ class VariantRef : public VariantRefBase<VariantData>,
template <typename TString>
FORCE_INLINE VariantRef getOrAddMember(const TString &) const;
FORCE_INLINE void link(VariantRef var) {
if (_data)
_data->setPointer(var._data);
}
void link(class VariantConstRef var);
FORCE_INLINE void remove(size_t index) const {
if (_data)