From ed3c40c2d16d80b2a9fbe74aadabab1a5ace8624 Mon Sep 17 00:00:00 2001 From: reuk Date: Tue, 10 Jan 2023 12:26:18 +0000 Subject: [PATCH] ValueTree: Avoid void* --- modules/juce_data_structures/values/juce_ValueTree.cpp | 6 +++--- modules/juce_data_structures/values/juce_ValueTree.h | 5 +++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/modules/juce_data_structures/values/juce_ValueTree.cpp b/modules/juce_data_structures/values/juce_ValueTree.cpp index 251d9f69b5..a3903d9f58 100644 --- a/modules/juce_data_structures/values/juce_ValueTree.cpp +++ b/modules/juce_data_structures/values/juce_ValueTree.cpp @@ -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 (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 (internal))); + return ValueTree (SharedObject::Ptr (*internal)); } ValueTree::Iterator ValueTree::begin() const noexcept { return Iterator (*this, false); } diff --git a/modules/juce_data_structures/values/juce_ValueTree.h b/modules/juce_data_structures/values/juce_ValueTree.h index d262e09c48..8d147a5559 100644 --- a/modules/juce_data_structures/values/juce_ValueTree.h +++ b/modules/juce_data_structures/values/juce_ValueTree.h @@ -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 object;