X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0613b80c171f77425226621886e9160f6767ad30..7249080588e30b4740adc138e793ffa0ead4b5ef:/include/wx/object.h diff --git a/include/wx/object.h b/include/wx/object.h index acf4956d16..3ac8f6bf6e 100644 --- a/include/wx/object.h +++ b/include/wx/object.h @@ -73,7 +73,7 @@ public: , m_baseInfo1(baseInfo1) , m_baseInfo2(baseInfo2) , m_next(sm_first) - { + { sm_first = this; Register(); } @@ -114,7 +114,7 @@ public: wxDEPRECATED( static void CleanUpClasses() ); #endif static void CleanUp(); - + public: const wxChar *m_className; int m_objectSize; @@ -140,8 +140,8 @@ private: static wxClassInfo *GetBaseByName(const wxChar *name); DECLARE_NO_COPY_CLASS(wxClassInfo) - -protected: + +protected: // registers the class void Register(); void Unregister(); @@ -333,7 +333,10 @@ name##PluginSentinel m_pluginsentinel; // to be replaced by dynamic_cast<> in the future #define wxDynamicCast(obj, className) \ - ((className *) wxCheckDynamicCast((wxObject*)(obj), &className::ms_classInfo)) + ((className *) wxCheckDynamicCast( \ + wx_const_cast(wxObject *, wx_static_cast(const wxObject *, \ + wx_const_cast(className *, wx_static_cast(const className *, obj)))), \ + &className::ms_classInfo)) // The 'this' pointer is always true, so use this version // to cast the this pointer and avoid compiler warnings. @@ -413,7 +416,7 @@ inline void* wxCheckCast(void *ptr) #endif // WXDEBUG && wxUSE_MEMORY_TRACING // ---------------------------------------------------------------------------- -// wxObject: the root class of wxWindows object hierarchy +// wxObject: the root class of wxWidgets object hierarchy // ---------------------------------------------------------------------------- class WXDLLIMPEXP_BASE wxObject @@ -544,7 +547,11 @@ public: // get the runtime identity of this object wxClassInfo *GetClassInfo() const { - return const_cast((const wxClassInfo*)m_classInfo); +#ifdef _MSC_VER + return (wxClassInfo*) m_classInfo; +#else + return wx_const_cast(wxClassInfo *, m_classInfo); +#endif } wxObject* GetSuperClassInstance() const @@ -583,6 +590,9 @@ private : #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 #endif // _WX_OBJECTH__