Fixed copying from JsonObjectConst and JsonArrayConst

This commit is contained in:
Benoit Blanchon
2019-01-14 10:47:29 +01:00
parent 9ac2ac303c
commit 11bb5e26ff
4 changed files with 14 additions and 2 deletions

View File

@ -96,7 +96,7 @@ class ArrayRef : public ArrayRefBase<CollectionData>, public Visitable {
return add().set(value);
}
// Adds the specified value at the end of the array.
FORCE_INLINE bool add(ArrayRef value) const {
FORCE_INLINE bool add(ArrayConstRef value) const {
return add().set(value);
}
//
@ -150,7 +150,7 @@ class ArrayRef : public ArrayRefBase<CollectionData>, public Visitable {
}
// Copy a ArrayRef
FORCE_INLINE bool copyFrom(ArrayRef src) const {
FORCE_INLINE bool copyFrom(ArrayConstRef src) const {
if (!_data || !src._data) return false;
return _data->copyFrom(*src._data, _pool);
}

View File

@ -64,6 +64,10 @@ inline bool VariantRef::set(ArrayRef array) const {
return to<ArrayRef>().copyFrom(array);
}
inline bool VariantRef::set(ArrayConstRef array) const {
return to<ArrayRef>().copyFrom(array);
}
inline bool VariantRef::set(const ArraySubscript& value) const {
return set(value.as<VariantRef>());
}
@ -72,6 +76,10 @@ inline bool VariantRef::set(ObjectRef object) const {
return to<ObjectRef>().copyFrom(object);
}
inline bool VariantRef::set(ObjectConstRef object) const {
return to<ObjectRef>().copyFrom(object);
}
template <typename TString>
inline bool VariantRef::set(const ObjectSubscript<TString>& value) const {
return set(value.template as<VariantRef>());

View File

@ -203,8 +203,10 @@ class VariantRef : public VariantRefBase<VariantData>,
bool set(VariantRef value) const;
FORCE_INLINE bool set(ArrayRef array) const;
FORCE_INLINE bool set(ArrayConstRef array) const;
FORCE_INLINE bool set(const ArraySubscript &) const;
FORCE_INLINE bool set(ObjectRef object) const;
FORCE_INLINE bool set(ObjectConstRef object) const;
template <typename TString>
FORCE_INLINE bool set(const ObjectSubscript<TString> &) const;