1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00

ValueTree: Avoid void*

This commit is contained in:
reuk 2023-01-10 12:26:18 +00:00
parent 32164d5e59
commit ed3c40c2d1
No known key found for this signature in database
GPG key ID: FCB43929F012EE5C
2 changed files with 6 additions and 5 deletions

View file

@ -46,7 +46,7 @@ public:
SharedObject& operator= (const SharedObject&) = delete; SharedObject& operator= (const SharedObject&) = delete;
~SharedObject() ~SharedObject() override
{ {
jassert (parent == nullptr); // this should never happen unless something isn't obeying the ref-counting! jassert (parent == nullptr); // this should never happen unless something isn't obeying the ref-counting!
@ -873,7 +873,7 @@ ValueTree::Iterator::Iterator (const ValueTree& v, bool isEnd)
ValueTree::Iterator& ValueTree::Iterator::operator++() ValueTree::Iterator& ValueTree::Iterator::operator++()
{ {
internal = static_cast<SharedObject**> (internal) + 1; ++internal;
return *this; return *this;
} }
@ -882,7 +882,7 @@ bool ValueTree::Iterator::operator!= (const Iterator& other) const { return int
ValueTree ValueTree::Iterator::operator*() const ValueTree ValueTree::Iterator::operator*() const
{ {
return ValueTree (SharedObject::Ptr (*static_cast<SharedObject**> (internal))); return ValueTree (SharedObject::Ptr (*internal));
} }
ValueTree::Iterator ValueTree::begin() const noexcept { return Iterator (*this, false); } ValueTree::Iterator ValueTree::begin() const noexcept { return Iterator (*this, false); }

View file

@ -70,6 +70,8 @@ namespace juce
*/ */
class JUCE_API ValueTree final class JUCE_API ValueTree final
{ {
JUCE_PUBLIC_IN_DLL_BUILD (class SharedObject)
public: public:
//============================================================================== //==============================================================================
/** Creates an empty, invalid ValueTree. /** Creates an empty, invalid ValueTree.
@ -413,7 +415,7 @@ public:
using iterator_category = std::forward_iterator_tag; using iterator_category = std::forward_iterator_tag;
private: private:
void* internal; SharedObject** internal = nullptr;
}; };
/** Returns a start iterator for the children in this tree. */ /** Returns a start iterator for the children in this tree. */
@ -614,7 +616,6 @@ public:
private: private:
//============================================================================== //==============================================================================
JUCE_PUBLIC_IN_DLL_BUILD (class SharedObject)
friend class SharedObject; friend class SharedObject;
ReferenceCountedObjectPtr<SharedObject> object; ReferenceCountedObjectPtr<SharedObject> object;