summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/RefCounted.h
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2009-01-22 20:29:12 +0000
committerAlan Conway <aconway@apache.org>2009-01-22 20:29:12 +0000
commit1a14b81c86c49d562486ab2c55a75c564144fa71 (patch)
treec31be2934c8802cc6e6499bf3fca3590f6637767 /cpp/src/qpid/RefCounted.h
parentcacc168520f742ae7a45fa4d7198d6958ae5b9a4 (diff)
downloadqpid-python-1a14b81c86c49d562486ab2c55a75c564144fa71.tar.gz
Removed BodyHolder: minor performance improvement, opens the way for more efficient memory management.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@736783 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/RefCounted.h')
-rw-r--r--cpp/src/qpid/RefCounted.h4
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; }
};