Implement nesting() out of VariantData

This commit is contained in:
Benoit Blanchon
2022-03-29 13:03:07 +02:00
parent ccfbb5fd1d
commit fc9d8aa31e
8 changed files with 38 additions and 23 deletions

View File

@@ -18,8 +18,7 @@ template <typename TData>
class ObjectRefBase {
public:
operator VariantConstRef() const {
const void* data = _data; // prevent warning cast-align
return VariantConstRef(reinterpret_cast<const VariantData*>(data));
return VariantConstRef(getVariantData());
}
template <typename TVisitor>
@@ -40,7 +39,7 @@ class ObjectRefBase {
}
FORCE_INLINE size_t nesting() const {
return _data ? _data->nesting() : 0;
return variantNesting(getVariantData());
}
FORCE_INLINE size_t size() const {
@@ -48,6 +47,11 @@ class ObjectRefBase {
}
protected:
const VariantData* getVariantData() const {
const void* data = _data; // prevent warning cast-align
return reinterpret_cast<const VariantData*>(data);
}
ObjectRefBase(TData* data) : _data(data) {}
TData* _data;
};