From 86f1b6628f384ff1193e7431f39fb208c39d7cb2 Mon Sep 17 00:00:00 2001 From: jules Date: Mon, 20 Mar 2017 12:08:32 +0000 Subject: [PATCH] Added a reference count getter method to SharedResourcePointer --- modules/juce_core/memory/juce_SharedResourcePointer.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/juce_core/memory/juce_SharedResourcePointer.h b/modules/juce_core/memory/juce_SharedResourcePointer.h index b4c1a9e0d7..83580acaaa 100644 --- a/modules/juce_core/memory/juce_SharedResourcePointer.h +++ b/modules/juce_core/memory/juce_SharedResourcePointer.h @@ -109,7 +109,7 @@ public: */ ~SharedResourcePointer() { - SharedObjectHolder& holder = getSharedObjectHolder(); + auto& holder = getSharedObjectHolder(); const SpinLock::ScopedLockType sl (holder.lock); if (--(holder.refCount) == 0) @@ -127,8 +127,12 @@ public: */ SharedObjectType& getObject() const noexcept { return *sharedObject; } + /** Returns the shared object. */ SharedObjectType* operator->() const noexcept { return sharedObject; } + /** Returns the number of SharedResourcePointers that are currently holding the shared object. */ + int getReferenceCount() const noexcept { return getSharedObjectHolder().refCount; } + private: struct SharedObjectHolder : public ReferenceCountedObject { @@ -147,7 +151,7 @@ private: void initialise() { - SharedObjectHolder& holder = getSharedObjectHolder(); + auto& holder = getSharedObjectHolder(); const SpinLock::ScopedLockType sl (holder.lock); if (++(holder.refCount) == 1)