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()
~SharedObject() override
{
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++()
{
internal = static_cast<SharedObject**> (internal) + 1;
++internal;
return *this;
}
@ -882,7 +882,7 @@ bool ValueTree::Iterator::operator!= (const Iterator& other) const { return int
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); }

View file

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