X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4e32eea148dafadbdd0712377c1b5038406ffde5..3786c8b587f82e406ba9656847b5bff4ed9209c2:/include/wx/memory.h diff --git a/include/wx/memory.h b/include/wx/memory.h index 22820dcb91..eb4cbc29ae 100644 --- a/include/wx/memory.h +++ b/include/wx/memory.h @@ -12,10 +12,6 @@ #ifndef _WX_MEMORYH__ #define _WX_MEMORYH__ -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma interface "memory.h" -#endif - #include "wx/defs.h" #include "wx/string.h" #include "wx/msgout.h" @@ -42,9 +38,7 @@ WXDLLIMPEXP_BASE void wxDebugFree(void * buf, bool isVect = false); // We'll only do malloc and free for the moment: leave the interesting // stuff for the wxObject versions. -// devik 2000-8-29: All new/delete ops are now inline because they can't -// be marked as dllexport/dllimport. It then leads to weird bugs when -// used on MSW as DLL + #if wxUSE_GLOBAL_MEMORY_OPERATORS @@ -70,37 +64,58 @@ WXDLLIMPEXP_BASE void wxDebugFree(void * buf, bool isVect = false); #define wxUSE_ARRAY_MEMORY_OPERATORS 0 #endif +// devik 2000-8-29: All new/delete ops are now inline because they can't +// be marked as dllexport/dllimport. It then leads to weird bugs when +// used on MSW as DLL +#if defined(__WXMSW__) && (defined(WXUSINGDLL) || defined(WXMAKINGDLL_BASE)) inline void * operator new (size_t size, wxChar * fileName, int lineNum) { - return wxDebugAlloc(size, fileName, lineNum, false, false); + return wxDebugAlloc(size, fileName, lineNum, FALSE, FALSE); } inline void * operator new (size_t size) { - return wxDebugAlloc(size, NULL, 0, false); + return wxDebugAlloc(size, NULL, 0, FALSE); } inline void operator delete (void * buf) { - wxDebugFree(buf, false); + wxDebugFree(buf, FALSE); } #if wxUSE_ARRAY_MEMORY_OPERATORS inline void * operator new[] (size_t size) { - return wxDebugAlloc(size, NULL, 0, false, true); + return wxDebugAlloc(size, NULL, 0, FALSE, TRUE); } inline void * operator new[] (size_t size, wxChar * fileName, int lineNum) { - return wxDebugAlloc(size, fileName, lineNum, false, true); + return wxDebugAlloc(size, fileName, lineNum, FALSE, TRUE); } inline void operator delete[] (void * buf) { - wxDebugFree(buf, true); + wxDebugFree(buf, TRUE); } -#endif +#endif // wxUSE_ARRAY_MEMORY_OPERATORS + +#else + +void * operator new (size_t size, wxChar * fileName, int lineNum); + +void * operator new (size_t size); + +void operator delete (void * buf); + +#if wxUSE_ARRAY_MEMORY_OPERATORS +void * operator new[] (size_t size); + +void * operator new[] (size_t size, wxChar * fileName, int lineNum); + +void operator delete[] (void * buf); +#endif // wxUSE_ARRAY_MEMORY_OPERATORS +#endif // defined(__WXMSW__) && (defined(WXUSINGDLL) || defined(WXMAKINGDLL_BASE)) // VC++ 6.0 and MWERKS #if ( defined(__VISUALC__) && (__VISUALC__ >= 1200) ) || defined(__MWERKS__)