Index: core/fxcrt/include/cfx_count_ref.h |
diff --git a/core/fxcrt/include/cfx_count_ref.h b/core/fxcrt/include/cfx_count_ref.h |
index 817ce95add494ad5cc44598668cbbcd3df466aef..0837894c66932776c8914ac19788d81b96b15715 100644 |
--- a/core/fxcrt/include/cfx_count_ref.h |
+++ b/core/fxcrt/include/cfx_count_ref.h |
@@ -29,17 +29,16 @@ class CFX_CountRef { |
return *this; |
} |
- void SetNull() { m_pObject.Reset(); } |
+ void Clear() { m_pObject.Reset(); } |
ObjClass* GetObject() { return m_pObject.Get(); } |
const ObjClass* GetObject() const { return m_pObject.Get(); } |
template <typename... Args> |
- ObjClass* GetPrivateCopy(Args... params) { |
+ void MakePrivateCopy(Args... params) { |
if (!m_pObject) |
- return New(params...); |
- if (!m_pObject->HasOneRef()) |
+ m_pObject.Reset(new CountedObj(params...)); |
+ else if (!m_pObject->HasOneRef()) |
m_pObject.Reset(new CountedObj(*m_pObject)); |
- return m_pObject.Get(); |
} |
bool operator==(const CFX_CountRef& that) const { |
@@ -47,6 +46,8 @@ class CFX_CountRef { |
} |
bool operator!=(const CFX_CountRef& that) const { return !(*this == that); } |
operator bool() const { return m_pObject; } |
+ ObjClass& operator*() const { return *m_pObject.Get(); } |
+ ObjClass* operator->() const { return m_pObject.Get(); } |
private: |
class CountedObj : public ObjClass { |