diff options
Diffstat (limited to 'core/fxcrt/include/fx_basic.h')
-rw-r--r-- | core/fxcrt/include/fx_basic.h | 69 |
1 files changed, 0 insertions, 69 deletions
diff --git a/core/fxcrt/include/fx_basic.h b/core/fxcrt/include/fx_basic.h index bc05a3479d..6a8988d5dc 100644 --- a/core/fxcrt/include/fx_basic.h +++ b/core/fxcrt/include/fx_basic.h @@ -649,75 +649,6 @@ class CFX_BitStream { const uint8_t* m_pData; }; -template <class ObjClass> -class CFX_CountRef { - public: - using Ref = CFX_CountRef<ObjClass>; - - class CountedObj : public ObjClass { - public: - CountedObj() {} - CountedObj(const CountedObj& src) : ObjClass(src) {} - - int m_RefCount; - }; - - CFX_CountRef() : m_pObject(nullptr) {} - CFX_CountRef(const Ref& ref) : m_pObject(ref.m_pObject) { - if (m_pObject) - m_pObject->m_RefCount++; - } - - ~CFX_CountRef() { SetNull(); } - - ObjClass* New() { - SetNull(); - m_pObject = new CountedObj; - m_pObject->m_RefCount = 1; - return m_pObject; - } - - void operator=(const Ref& ref) { - if (ref.m_pObject) - ref.m_pObject->m_RefCount++; - SetNull(); - m_pObject = ref.m_pObject; - } - - bool IsNull() const { return !m_pObject; } - bool NotNull() const { return !IsNull(); } - - const ObjClass* GetObject() const { return m_pObject; } - ObjClass* GetModify() { - if (!m_pObject) { - m_pObject = new CountedObj; - m_pObject->m_RefCount = 1; - } else if (m_pObject->m_RefCount > 1) { - m_pObject->m_RefCount--; - CountedObj* pOldObject = m_pObject; - m_pObject = new CountedObj(*pOldObject); - m_pObject->m_RefCount = 1; - } - return m_pObject; - } - - void SetNull() { - if (!m_pObject) { - return; - } - m_pObject->m_RefCount--; - if (m_pObject->m_RefCount <= 0) { - delete m_pObject; - } - m_pObject = nullptr; - } - - bool operator==(const Ref& ref) const { return m_pObject == ref.m_pObject; } - - protected: - CountedObj* m_pObject; -}; - class IFX_Pause { public: virtual ~IFX_Pause() {} |