aboutsummaryrefslogtreecommitdiff
path: root/engines/gob/gob.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/gob/gob.h')
-rw-r--r--engines/gob/gob.h17
1 files changed, 10 insertions, 7 deletions
diff --git a/engines/gob/gob.h b/engines/gob/gob.h
index 6f64053fe6..a3da4f4fd3 100644
--- a/engines/gob/gob.h
+++ b/engines/gob/gob.h
@@ -109,11 +109,14 @@ class ReferenceCounter {
public:
class Ptr {
public:
- T* operator-> () { return _p; }
- T& operator* () { return *_p; }
+ bool operator==(const Ptr &p) const { return _p == p._p; }
+ bool operator==(const ReferenceCounter *p) const { return _p == p; }
+
+ T *operator-> () { return _p; }
+ T &operator* () { return *_p; }
operator T*() { return _p; }
- Ptr(T* p) : _p(p) { ++_p->_references; }
+ Ptr(T *p) : _p(p) { ++_p->_references; }
Ptr() : _p(0) { }
~Ptr() {
@@ -121,16 +124,16 @@ public:
delete _p;
}
- Ptr(const Ptr& p) : _p(p._p) { ++_p->_references; }
+ Ptr(const Ptr &p) : _p(p._p) { ++_p->_references; }
- Ptr& operator= (const Ptr& p) {
+ Ptr &operator= (const Ptr &p) {
++p._p->_references;
if (_p && (--_p->_references == 0))
delete _p;
_p = p._p;
return *this;
}
- Ptr* operator= (const Ptr* p) {
+ Ptr *operator= (const Ptr *p) {
if (p)
++p->_p->_references;
if (_p && (--_p->_references == 0))
@@ -141,7 +144,7 @@ public:
}
private:
- T* _p;
+ T *_p;
};
ReferenceCounter() : _references(0) { }