// headers
// ----------------------------------------------------------------------------
-#include "wx/defs.h"
#include "wx/memory.h"
class WXDLLIMPEXP_BASE wxObject;
// destroy a reference
void UnRef();
+ // Make sure this object has only one reference
+ void UnShare() { AllocExclusive(); }
+
protected:
// ensure that our data is not shared with anybody else: if we have no
// data, it is created using CreateRefData() below, if we have shared data
// it is copied using CloneRefData(), otherwise nothing is done
void AllocExclusive();
- // both methods must be implemented if Unshare() is used, not pure virtual
+ // both methods must be implemented if AllocExclusive() is used, not pure virtual
// only because of the backwards compatibility reasons
// create a new m_refData
public:
// instantiates this object with an instance of its superclass
wxDynamicObject(wxObject* superClassInstance, const wxDynamicClassInfo *info) ;
- ~wxDynamicObject();
+ virtual ~wxDynamicObject();
void SetProperty (const wxChar *propertyName, const wxxVariant &value);
wxxVariant GetProperty (const wxChar *propertyName) const ;
// more debugging macros
// ----------------------------------------------------------------------------
-#ifdef __WXDEBUG__
- #ifndef WXDEBUG_NEW
- #define WXDEBUG_NEW new(__TFILE__,__LINE__)
- #endif
-#else // !__WXDEBUG__
- #define WXDEBUG_NEW new
-#endif
-
// Redefine new to be the debugging version. This doesn't work with all
// compilers, in which case you need to use WXDEBUG_NEW explicitly if you wish
// to use the debugging version.
-#if defined(__WXDEBUG__) && wxUSE_GLOBAL_MEMORY_OPERATORS && wxUSE_DEBUG_NEW_ALWAYS
- #define new new(__TFILE__,__LINE__)
-#elif (defined(__WXDEBUG__) && defined(__VISUALC__) && !wxUSE_GLOBAL_MEMORY_OPERATORS && wxUSE_DEBUG_NEW_ALWAYS)
- // Including this file redefines new and allows leak reports to contain line numbers
- #include "wx/msw/msvcrt.h"
-#endif
+#ifdef __WXDEBUG__
+ #define WXDEBUG_NEW new(__TFILE__,__LINE__)
+
+ #if wxUSE_DEBUG_NEW_ALWAYS
+ #if wxUSE_GLOBAL_MEMORY_OPERATORS
+ #define new WXDEBUG_NEW
+ #elif defined(__VISUALC__)
+ // Including this file redefines new and allows leak reports to
+ // contain line numbers
+ #include "wx/msw/msvcrt.h"
+ #endif
+ #endif // wxUSE_DEBUG_NEW_ALWAYS
+#else // !__WXDEBUG__
+ #define WXDEBUG_NEW new
+#endif // __WXDEBUG__/!__WXDEBUG__
#endif // _WX_OBJECTH__