diff options
author | Max Horn | 2009-06-06 20:03:13 +0000 |
---|---|---|
committer | Max Horn | 2009-06-06 20:03:13 +0000 |
commit | 0989bb0b9087e74662f546d13b2f16544cfba20b (patch) | |
tree | 146dd1f80bc6367b4de30d229e47a7776f2b59a9 /engines/gob/helper.h | |
parent | 24a512cab08a12eb2b8f3b759d7f3d82c6853a21 (diff) | |
download | scummvm-rg350-0989bb0b9087e74662f546d13b2f16544cfba20b.tar.gz scummvm-rg350-0989bb0b9087e74662f546d13b2f16544cfba20b.tar.bz2 scummvm-rg350-0989bb0b9087e74662f546d13b2f16544cfba20b.zip |
GOB: Got rid of class ReferenceCounter; changed SurfaceDesc::Ptr to SurfaceDescPtr (a Common::SharedPtr); and changed many SurfaceDesc pointers to references
svn-id: r41299
Diffstat (limited to 'engines/gob/helper.h')
-rw-r--r-- | engines/gob/helper.h | 52 |
1 files changed, 0 insertions, 52 deletions
diff --git a/engines/gob/helper.h b/engines/gob/helper.h index fbb5ae7ec8..d1f24792a5 100644 --- a/engines/gob/helper.h +++ b/engines/gob/helper.h @@ -35,58 +35,6 @@ inline char *strncpy0(char *dest, const char *src, size_t n) { return dest; } -/** A "smart" reference counting templated class. */ -template<typename T> -class ReferenceCounter { -public: - class Ptr { - public: - 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() : _p(0) { } - - ~Ptr() { - if (_p && (--_p->_references == 0)) - delete _p; - } - - Ptr(const Ptr &p) : _p(p._p) { ++_p->_references; } - - 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) { - if (p) - ++p->_p->_references; - if (_p && (--_p->_references == 0)) - delete _p; - - _p = p ? p->_p : 0; - return this; - } - - private: - T *_p; - }; - - ReferenceCounter() : _references(0) { } - virtual ~ReferenceCounter() {} - -private: - unsigned _references; - friend class Ptr; -}; - } // End of namespace Gob #endif // GOB_HELPER_H |