X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/aac65598a1137a8a9d4d31155ba83833500aea4d..012409e9ef464462a096344d61119d783b77865d:/include/wx/object.h diff --git a/include/wx/object.h b/include/wx/object.h index f89b3dbd77..f09a795b6b 100644 --- a/include/wx/object.h +++ b/include/wx/object.h @@ -175,6 +175,13 @@ wxObject* WXDLLEXPORT_CTORFN wxConstructorFor##name(void) \ ? (className *)(obj) \ : (className *)0) +// The 'this' pointer is always true, so use this version to cast the this +// pointer and avoid compiler warnings. +#define wxDynamicThisCast(obj, className) \ + (((obj)->IsKindOf(&className::sm_class##className)) \ + ? (className *)(obj) \ + : (className *)0) + #define wxConstCast(obj, className) ((className *)(obj)) #ifdef __WXDEBUG__ @@ -191,6 +198,7 @@ wxObject* WXDLLEXPORT_CTORFN wxConstructorFor##name(void) \ #endif // Debug/!Debug // Unfortunately Borland seems to need this include. +#if wxUSE_STD_IOSTREAM && (defined(__WXDEBUG__) || wxUSE_DEBUG_CONTEXT) #ifdef __BORLANDC__ #if wxUSE_IOSTREAMH #include @@ -198,6 +206,7 @@ wxObject* WXDLLEXPORT_CTORFN wxConstructorFor##name(void) \ #include #endif #endif +#endif class WXDLLEXPORT wxObjectRefData; @@ -219,29 +228,35 @@ class WXDLLEXPORT wxObject #if defined(__WXDEBUG__) && wxUSE_MEMORY_TRACING void * operator new (size_t size, wxChar * fileName = NULL, int lineNum = 0); - void operator delete (void * buf); +# if defined(__VISAGECPP__) +# if __DEBUG_ALLOC__ + void operator delete (void * buf,const char * _fname, size_t _line); +# endif //__DEBUG_ALLOC__ +# else // Everybody else + void operator delete (void * buf); +# endif // end of VISAGECPP // VC++ 6.0 -#if defined(__VISUALC__) && (__VISUALC__ >= 1200) - void operator delete(void *buf, wxChar*, int); -#endif +# if defined(__VISUALC__) && (__VISUALC__ >= 1200) + void operator delete(void *buf, wxChar*, int); +# endif // Causes problems for VC++ -#if wxUSE_ARRAY_MEMORY_OPERATORS && !defined(__VISUALC__) && !defined( __MWERKS__) - void * operator new[] (size_t size, wxChar * fileName = NULL, int lineNum = 0); - void operator delete[] (void * buf); -#endif +# if wxUSE_ARRAY_MEMORY_OPERATORS && !defined(__VISUALC__) && !defined( __MWERKS__) + void * operator new[] (size_t size, wxChar * fileName = NULL, int lineNum = 0); + void operator delete[] (void * buf); +# endif -#ifdef __MWERKS__ - void * operator new[] (size_t size, wxChar * fileName , int lineNum = 0); - void * operator new[] (size_t size) { return operator new[] ( size , NULL , 0 ) ; } - void operator delete[] (void * buf); -#endif +# ifdef __MWERKS__ + void * operator new[] (size_t size, wxChar * fileName , int lineNum = 0); + void * operator new[] (size_t size) { return operator new[] ( size , NULL , 0 ) ; } + void operator delete[] (void * buf); +# endif #endif // Debug & memory tracing #if wxUSE_STD_IOSTREAM && (defined(__WXDEBUG__) || wxUSE_DEBUG_CONTEXT) - virtual void Dump(ostream& str); + virtual void Dump(wxSTD ostream& str); #endif #if wxUSE_SERIAL