2929#include " ReferenceCountedObject.h"
3030#include " ../threads/SpinLock.h"
3131
32- #include " extra/ScopedPointer.hpp "
32+ #include < memory >
3333
3434namespace water {
3535
@@ -123,7 +123,7 @@ class SharedResourcePointer
123123 const SpinLock::ScopedLockType sl (holder.lock );
124124
125125 if (--(holder.refCount ) == 0 )
126- holder.sharedInstance = nullptr ;
126+ holder.sharedInstance . reset () ;
127127 }
128128
129129 /* * Returns the shared object. */
@@ -144,7 +144,7 @@ class SharedResourcePointer
144144 struct SharedObjectHolder : public ReferenceCountedObject
145145 {
146146 SpinLock lock;
147- ScopedPointer <SharedObjectType> sharedInstance;
147+ std::unique_ptr <SharedObjectType> sharedInstance;
148148 int refCount;
149149 };
150150
@@ -162,9 +162,9 @@ class SharedResourcePointer
162162 const SpinLock::ScopedLockType sl (holder.lock );
163163
164164 if (++(holder.refCount ) == 1 )
165- holder.sharedInstance = new SharedObjectType ();
165+ holder.sharedInstance . reset ( new SharedObjectType () );
166166
167- sharedObject = holder.sharedInstance ;
167+ sharedObject = holder.sharedInstance . get () ;
168168 }
169169
170170 void initialise_v2 (const char * const v1, const char * const v2)
@@ -173,9 +173,9 @@ class SharedResourcePointer
173173 const SpinLock::ScopedLockType sl (holder.lock );
174174
175175 if (++(holder.refCount ) == 1 )
176- holder.sharedInstance = new SharedObjectType (v1, v2);
176+ holder.sharedInstance . reset ( new SharedObjectType (v1, v2) );
177177
178- sharedObject = holder.sharedInstance ;
178+ sharedObject = holder.sharedInstance . get () ;
179179 }
180180
181181 // There's no need to assign to a SharedResourcePointer because every
0 commit comments