From d9374d936f18a52774eef164942fdf7cfbff1909 Mon Sep 17 00:00:00 2001 From: DasBlub Date: Sat, 12 Mar 2011 22:50:18 +0100 Subject: [PATCH] [11283] Drop the no longer used Visual Leak Detector (VLD) For leak detection you can also use tools like Valgrind. If you really want to use VLD you can revert this commit and remove the comments in MemoryLeaks.cpp and MemoryLeaks.h. The VLD version which has been shipped with MaNGOS is *heavily* outdated and I thus suggest you to use a newer version of it, if you really plan to use it. You can find the newest version on github in its official repository: https://github.com/dmoulding/vld --- CMakeLists.txt | 5 -- dep/include/vld/vld.h | 104 ------------------------------- dep/lib/win32_debug/vld.dll | Bin 131072 -> 0 bytes dep/lib/win32_debug/vld.lib | Bin 2032 -> 0 bytes src/mangosd/Main.cpp | 5 -- src/shared/Common.h | 7 --- src/shared/MemoryLeaks.cpp | 32 ---------- src/shared/MemoryLeaks.h | 48 -------------- src/shared/revision_nr.h | 2 +- win/VC100/shared.vcxproj | 2 - win/VC100/shared.vcxproj.filters | 6 -- win/VC80/shared.vcproj | 8 --- win/VC90/shared.vcproj | 8 --- 13 files changed, 1 insertion(+), 226 deletions(-) delete mode 100644 dep/include/vld/vld.h delete mode 100644 dep/lib/win32_debug/vld.dll delete mode 100644 dep/lib/win32_debug/vld.lib delete mode 100644 src/shared/MemoryLeaks.cpp delete mode 100644 src/shared/MemoryLeaks.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 495b27a90..caefe0694 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -369,10 +369,6 @@ if(WIN32) CONFIGURATIONS Debug ) if(PLATFORM MATCHES X86) - # Special thing for debug and 32-bit - set(WIN_DEBUGLIBS - ${CMAKE_SOURCE_DIR}/dep/lib/win32_debug/vld.lib - ) # Copy dll's Windows needs install( FILES @@ -382,7 +378,6 @@ if(WIN32) ) install( FILES - ${CMAKE_SOURCE_DIR}/dep/lib/win32_debug/vld.dll ${CMAKE_SOURCE_DIR}/dep/lib/win32_debug/dbghelp.dll DESTINATION ${LIBS_DIR} CONFIGURATIONS Debug diff --git a/dep/include/vld/vld.h b/dep/include/vld/vld.h deleted file mode 100644 index ffe675d7d..000000000 --- a/dep/include/vld/vld.h +++ /dev/null @@ -1,104 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// $Id: vld.h,v 1.27 2006/11/12 18:09:20 dmouldin Exp $ -// -// Visual Leak Detector (Version 1.9d) - Import Library Header -// Copyright (c) 2006 Dan Moulding -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License, or (at your option) any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -// -// See COPYING.txt for the full terms of the GNU Lesser General Public License. -// -//////////////////////////////////////////////////////////////////////////////// - -//#pragma once -#ifndef _VLD_H_ -#define _VLD_H_ - -#ifdef _DEBUG - -#pragma comment(lib, "vld.lib") - -// Force a symbolic reference to the global VisualLeakDetector class object from -// the DLL. This enusres that the DLL is loaded and linked with the program, -// even if no code otherwise imports any of the DLL's exports. -#pragma comment(linker, "/include:__imp_?vld@@3VVisualLeakDetector@@A") - -//////////////////////////////////////////////////////////////////////////////// -// -// Visual Leak Detector APIs -// - -#ifdef __cplusplus -extern "C" { -#endif // __cplusplus - -// VLDDisable - Disables Visual Leak Detector's memory leak detection at -// runtime. If memory leak detection is already disabled, then calling this -// function has no effect. -// -// Note: In multithreaded programs, this function operates on a per-thread -// basis. In other words, if you call this function from one thread, then -// memory leak detection is only disabled for that thread. If memory leak -// detection is enabled for other threads, then it will remain enabled for -// those other threads. It was designed to work this way to insulate you, -// the programmer, from having to ensure thread synchronization when calling -// VLDEnable() and VLDDisable(). Without this, calling these two functions -// unsychronized could result in unpredictable and unintended behavior. -// But this also means that if you want to disable memory leak detection -// process-wide, then you need to call this function from every thread in -// the process. -// -// Return Value: -// -// None. -// - -__declspec(dllimport) void VLDDisable (); - -// VLDEnable - Enables Visual Leak Detector's memory leak detection at runtime. -// If memory leak detection is already enabled, which it is by default, then -// calling this function has no effect. -// -// Note: In multithreaded programs, this function operates on a per-thread -// basis. In other words, if you call this function from one thread, then -// memory leak detection is only enabled for that thread. If memory leak -// detection is disabled for other threads, then it will remain disabled for -// those other threads. It was designed to work this way to insulate you, -// the programmer, from having to ensure thread synchronization when calling -// VLDEnable() and VLDDisable(). Without this, calling these two functions -// unsychronized could result in unpredictable and unintended behavior. -// But this also means that if you want to enable memory leak detection -// process-wide, then you need to call this function from every thread in -// the process. -// -// Return Value: -// -// None. -// - -__declspec(dllimport) void VLDEnable (); - -#ifdef __cplusplus -} -#endif // __cplusplus - -#else // !_DEBUG - -#define VLDEnable() -#define VLDDisable() - -#endif // _DEBUG - -#endif // _VLD_H_ diff --git a/dep/lib/win32_debug/vld.dll b/dep/lib/win32_debug/vld.dll deleted file mode 100644 index dee162c54e02ef88246c85428397227ea931fa8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 131072 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 TSdy_Tkh)SFNO9mlg#-T&|LLVJ diff --git a/dep/lib/win32_debug/vld.lib b/dep/lib/win32_debug/vld.lib deleted file mode 100644 index 0cf374670c0eba0ef8680bd3ef10f780b4714c5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2032 zcmb_d&2G~`5dLiEr-=}XC>Nw61*w8?390i}qyjFaQbXOeO4D3jH%>`JN~$D9y>a7| z8&AM1RN~$%2M#;{PrxH^C^OEkV}}wFl#$lE^W&Y_Z)SEMY}ma<>v{Z1GDvH>p3SZo ziuv`RJR?{=BUeXp084)=(jykFa^TJJj! zEUR*8ntv+sfwUuCZTqmYW0f{*n`GTSJ+oer$}qC^db@vacg&{!w$vOn8-s4oFvzBE zmP+luecWjZ`+$VBTkj^6LNGT5Yq~(=C>|jYR#c!60$O33FdGt0r>AqKAj6X!v;Yb6ZnJ=O+l1w9`C3 zf3tc(YnPtUmx?1m1`;pRZO0zitGZO&rNvhoKZHP|*+Aw>*ip@mh;jZ!L)x*_K=O*x zg4>8Oi>Nr%BP=HFNSR1>zv)gX;y8Z6SAepK@PMYP)j;o#c+#;TTOYTo zcOdWa?CUjgi)q97yp^Hn3ckuv-OBhv;f%t(xiTDI@VxX@Mpml0GCoU2%v>3~??N*^ zOD^w|)4yJ4b0bz9->!qBOv)wnzh::Instance(); - - //char *leak = new char[1000]; // test leak detection - ///- Command line parsing char const* cfg_file = _MANGOSD_CONFIG; diff --git a/src/shared/Common.h b/src/shared/Common.h index 94d69652e..cd61d2d8d 100644 --- a/src/shared/Common.h +++ b/src/shared/Common.h @@ -62,9 +62,6 @@ #endif // __SHOW_STUPID_WARNINGS__ #endif // __GNUC__ -// must be the first thing to include for it to work -#include "MemoryLeaks.h" - #include "Utilities/UnorderedMapSet.h" #include #include @@ -109,11 +106,7 @@ typedef off_t ACE_OFF_T; # define FD_SETSIZE 4096 # endif # include -// XP winver - needed to compile with standard leak check in MemoryLeaks.h -// uncomment later if needed -//#define _WIN32_WINNT 0x0501 # include -//#undef WIN32_WINNT #else # include # include diff --git a/src/shared/MemoryLeaks.cpp b/src/shared/MemoryLeaks.cpp deleted file mode 100644 index 561bc83dc..000000000 --- a/src/shared/MemoryLeaks.cpp +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (C) 2005-2011 MaNGOS - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#include "MemoryLeaks.h" -#include "Policies/SingletonImp.h" - -INSTANTIATE_SINGLETON_1( MemoryManager ) ; - -MemoryManager::MemoryManager( ) -{ - #if COMPILER == MICROSOFT - // standard leak check initialization - //_CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF); - // uncomment to disable Visual Leak Detector from code - //VLDDisable(); - #endif -} diff --git a/src/shared/MemoryLeaks.h b/src/shared/MemoryLeaks.h deleted file mode 100644 index f60433141..000000000 --- a/src/shared/MemoryLeaks.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (C) 2005-2011 MaNGOS - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#ifndef MANGOSSERVER_MEMORY_H -#define MANGOSSERVER_MEMORY_H - -#include "Platform/CompilerDefs.h" - -#if COMPILER == COMPILER_MICROSOFT - -#ifndef _WIN64 -// Visual Leak Detector support enabled -//#include -// standard Visual Studio leak check disabled, -//# define _CRTDBG_MAP_ALLOC -//# include -//# include -#else -//# define _CRTDBG_MAP_ALLOC -//# include -//# include -#endif - -#endif - - -#include "Policies/Singleton.h" - -struct MemoryManager : public MaNGOS::Singleton < MemoryManager > -{ - MemoryManager(); -}; -#endif diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index ae5b5e573..1daf4e79e 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "11282" + #define REVISION_NR "11283" #endif // __REVISION_NR_H__ diff --git a/win/VC100/shared.vcxproj b/win/VC100/shared.vcxproj index 8892b97cd..7fbffb554 100644 --- a/win/VC100/shared.vcxproj +++ b/win/VC100/shared.vcxproj @@ -443,7 +443,6 @@ - @@ -477,7 +476,6 @@ - diff --git a/win/VC100/shared.vcxproj.filters b/win/VC100/shared.vcxproj.filters index f316a941b..85f2946a6 100644 --- a/win/VC100/shared.vcxproj.filters +++ b/win/VC100/shared.vcxproj.filters @@ -48,9 +48,6 @@ Log - - Util - Util @@ -131,9 +128,6 @@ Util - - Util - Util diff --git a/win/VC80/shared.vcproj b/win/VC80/shared.vcproj index 6afe6fcf7..bed291448 100644 --- a/win/VC80/shared.vcproj +++ b/win/VC80/shared.vcproj @@ -624,14 +624,6 @@ RelativePath="..\..\src\shared\Errors.h" > - - - - diff --git a/win/VC90/shared.vcproj b/win/VC90/shared.vcproj index a75f8e4fa..ae7aec594 100644 --- a/win/VC90/shared.vcproj +++ b/win/VC90/shared.vcproj @@ -627,14 +627,6 @@ RelativePath="..\..\src\shared\Errors.h" > - - - -