diff options
Diffstat (limited to 'cpp/src/qpid/RefCounted.h')
-rw-r--r-- | cpp/src/qpid/RefCounted.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/cpp/src/qpid/RefCounted.h b/cpp/src/qpid/RefCounted.h index 10b5e4afcc..e7a9bf31c1 100644 --- a/cpp/src/qpid/RefCounted.h +++ b/cpp/src/qpid/RefCounted.h @@ -39,11 +39,13 @@ class RefCounted : boost::noncopyable { public: RefCounted() : count(0) {} void addRef() const { ++count; } - void release() const { if (--count==0) delete this; } + void release() const { if (--count==0) released(); } long refCount() { return count; } protected: virtual ~RefCounted() {}; + // Allow subclasses to over-ride behavior when refcount reaches 0. + virtual void released() const { delete this; } }; |