aboutsummaryrefslogtreecommitdiff
path: root/lib/base/object.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/base/object.h')
-rw-r--r--lib/base/object.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/base/object.h b/lib/base/object.h
index ddb4512c..64d9a88f 100644
--- a/lib/base/object.h
+++ b/lib/base/object.h
@@ -14,6 +14,11 @@ typedef int RESULT;
class iObject
{
+private:
+ /* we don't allow the default operator here, as it would break the refcount. */
+ void operator=(const iObject &);
+protected:
+ virtual ~iObject() { }
public:
virtual void AddRef()=0;
virtual void Release()=0;
@@ -25,6 +30,11 @@ class oRefCount
public:
oRefCount(): ref(0) { }
operator int&() { return ref; }
+ ~oRefCount() {
+#ifdef OBJECT_DEBUG
+ if (ref) eDebug("OBJECT_DEBUG FATAL: %p has %d references!", this, ref); else eDebug("OBJECT_DEBUG refcount ok! (%p)", this);
+#endif
+ }
};
#define DECLARE_REF private: oRefCount ref; public: void AddRef(); void Release();