diff options
author | Alan Conway <aconway@apache.org> | 2009-01-22 20:29:12 +0000 |
---|---|---|
committer | Alan Conway <aconway@apache.org> | 2009-01-22 20:29:12 +0000 |
commit | 1a14b81c86c49d562486ab2c55a75c564144fa71 (patch) | |
tree | c31be2934c8802cc6e6499bf3fca3590f6637767 /cpp/src/qpid/RefCounted.h | |
parent | cacc168520f742ae7a45fa4d7198d6958ae5b9a4 (diff) | |
download | qpid-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.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; } }; |