class WXDLLIMPEXP_FWD_BASE wxHashTable;
class WXDLLIMPEXP_FWD_BASE wxObject;
class WXDLLIMPEXP_FWD_BASE wxPluginLibrary;
-class WXDLLIMPEXP_FWD_BASE wxObjectRefData;
class WXDLLIMPEXP_FWD_BASE wxHashTable_Node;
// ----------------------------------------------------------------------------
#endif // wxUSE_MEMORY_TRACING
// ----------------------------------------------------------------------------
-// wxObjectRefData: ref counted data meant to be stored in wxObject
+// wxRefCounter: ref counted data "manager"
// ----------------------------------------------------------------------------
-class WXDLLIMPEXP_BASE wxObjectRefData
+class WXDLLIMPEXP_BASE wxRefCounter
{
- friend class WXDLLIMPEXP_FWD_BASE wxObject;
-
public:
- wxObjectRefData(int refCount = 1) : m_count(refCount) { }
+ wxRefCounter() { m_count = 1; }
int GetRefCount() const { return m_count; }
protected:
// this object should never be destroyed directly but only as a
// result of a DecRef() call:
- virtual ~wxObjectRefData() { }
+ virtual ~wxRefCounter() { }
private:
// our refcount:
int m_count;
};
+// ----------------------------------------------------------------------------
+// wxObjectRefData: ref counted data meant to be stored in wxObject
+// ----------------------------------------------------------------------------
+
+typedef wxRefCounter wxObjectRefData;
+
+
// ----------------------------------------------------------------------------
// wxObjectDataPtr: helper class to avoid memleaks because of missing calls
// to wxObjectRefData::DecRef
{
m_refData = other.m_refData;
if (m_refData)
- m_refData->m_count++;
+ m_refData->IncRef();
}
wxObject& operator=(const wxObject& other)