diff options
author | tsepez <tsepez@chromium.org> | 2016-08-26 10:59:04 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-08-26 10:59:04 -0700 |
commit | 80f9957fe156bd8e940499491ca8167fe7dad416 (patch) | |
tree | b0c46221fdfc40450d89fd4c55e646bdbc9bc13d /core/fxcrt/include/fx_basic.h | |
parent | 2d396ac157bcd6da78190def936e5eaf278a6ca7 (diff) | |
download | pdfium-80f9957fe156bd8e940499491ca8167fe7dad416.tar.xz |
Rework CFX_CountRef in terms of CFX_RetainPtr.
Make use of existing ref count work rather than re-inventing it.
Review-Url: https://codereview.chromium.org/2281683002
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() {} |