]> git.saurik.com Git - wxWidgets.git/commitdiff
Fixed memory checking on Unix by removing inlines and apply patch
authorJulian Smart <julian@anthemion.co.uk>
Thu, 2 Dec 2004 12:04:46 +0000 (12:04 +0000)
committerJulian Smart <julian@anthemion.co.uk>
Thu, 2 Dec 2004 12:04:46 +0000 (12:04 +0000)
by Mart Raudsepp

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30843 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/memory.h
src/common/memory.cpp

index 22820dcb91215fba21224fba8a5c606ad687e378..41ef650f988ffb5736746f444305af5b45701596 100644 (file)
@@ -70,36 +70,18 @@ WXDLLIMPEXP_BASE void wxDebugFree(void * buf, bool isVect = false);
     #define wxUSE_ARRAY_MEMORY_OPERATORS 0
 #endif
 
-inline void * operator new (size_t size, wxChar * fileName, int lineNum)
-{
-    return wxDebugAlloc(size, fileName, lineNum, false, false);
-}
+void * operator new (size_t size, wxChar * fileName, int lineNum);
 
-inline void * operator new (size_t size)
-{
-    return wxDebugAlloc(size, NULL, 0, false);
-}
+void * operator new (size_t size);
 
-inline void operator delete (void * buf)
-{
-    wxDebugFree(buf, false);
-}
+void operator delete (void * buf);
 
 #if wxUSE_ARRAY_MEMORY_OPERATORS
-inline void * operator new[] (size_t size)
-{
-    return wxDebugAlloc(size, NULL, 0, false, true);
-}
+void * operator new[] (size_t size);
 
-inline void * operator new[] (size_t size, wxChar * fileName, int lineNum)
-{
-    return wxDebugAlloc(size, fileName, lineNum, false, true);
-}
+void * operator new[] (size_t size, wxChar * fileName, int lineNum);
 
-inline void operator delete[] (void * buf)
-{
-  wxDebugFree(buf, true);
-}
+void operator delete[] (void * buf);
 #endif
 
 // VC++ 6.0 and MWERKS
index 5ca71ac6cf345b4018cc3114dbcf2d1fbbd92f90..0d67e157e0a040035a76ba781d2ee3558f54deda 100644 (file)
@@ -910,19 +910,47 @@ private:
     bool m_locked;
 };
 
-MemoryCriticalSection &GetMemLocker()
-{
     static MemoryCriticalSection memLocker;
-    return memLocker;
+
+#endif
+
+void * operator new (size_t size, wxChar * fileName, int lineNum)
+{
+    return wxDebugAlloc(size, fileName, lineNum, false, false);
 }
 
+void * operator new (size_t size)
+{
+    return wxDebugAlloc(size, NULL, 0, false);
+}
+
+void operator delete (void * buf)
+{
+    wxDebugFree(buf, false);
+}
+
+#if wxUSE_ARRAY_MEMORY_OPERATORS
+void * operator new[] (size_t size)
+{
+    return wxDebugAlloc(size, NULL, 0, false, true);
+}
+
+void * operator new[] (size_t size, wxChar * fileName, int lineNum)
+{
+    return wxDebugAlloc(size, fileName, lineNum, false, true);
+}
+
+void operator delete[] (void * buf)
+{
+  wxDebugFree(buf, true);
+}
 #endif
 
 // TODO: store whether this is a vector or not.
 void * wxDebugAlloc(size_t size, wxChar * fileName, int lineNum, bool isObject, bool WXUNUSED(isVect) )
 {
 #if USE_THREADSAFE_MEMORY_ALLOCATION
-  MemoryCriticalSectionLocker lock(GetMemLocker());
+  MemoryCriticalSectionLocker lock(memLocker);
 #endif
 
   // If not in debugging allocation mode, do the normal thing
@@ -982,7 +1010,7 @@ void * wxDebugAlloc(size_t size, wxChar * fileName, int lineNum, bool isObject,
 void wxDebugFree(void * buf, bool WXUNUSED(isVect) )
 {
 #if USE_THREADSAFE_MEMORY_ALLOCATION
-  MemoryCriticalSectionLocker lock(GetMemLocker());
+  MemoryCriticalSectionLocker lock(memLocker);
 #endif
 
   if (!buf)