X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/45bbbc54304272eb25b96e6c63b57107991bcd26..31ad423e4fb556ec225a63b161154d3bf3445c1b:/include/wx/object.h diff --git a/include/wx/object.h b/include/wx/object.h index e4faf7a05b..1443bcfa93 100644 --- a/include/wx/object.h +++ b/include/wx/object.h @@ -333,27 +333,24 @@ 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. #define wxDynamicCastThis(className) \ (IsKindOf(&className::ms_classInfo) ? (className *)(this) : (className *)0) -#ifdef HAVE_CONST_CAST -#define wxConstCast(obj, className) const_cast(obj) -#else -#define wxConstCast(obj, className) ((className *)(obj)) -#endif - - #ifdef __WXDEBUG__ -inline void wxCheckCast(void *ptr) +inline void* wxCheckCast(void *ptr) { wxASSERT_MSG( ptr, _T("wxStaticCast() used incorrectly") ); + return ptr; } #define wxStaticCast(obj, className) \ - (wxCheckCast(wxDynamicCast(obj, className)), ((className *)(obj))) + ((className *)wxCheckCast(wxDynamicCast(obj, className))) #else // !__WXDEBUG__ #define wxStaticCast(obj, className) ((className *)(obj)) @@ -419,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 @@ -550,7 +547,7 @@ public: // get the runtime identity of this object wxClassInfo *GetClassInfo() const { - return const_cast((const wxClassInfo*)m_classInfo); + return wx_const_cast(wxClassInfo *, m_classInfo); } wxObject* GetSuperClassInstance() const