summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Hazan <george.hazan@gmail.com>2013-06-19 16:40:53 +0000
committerGeorge Hazan <george.hazan@gmail.com>2013-06-19 16:40:53 +0000
commit09c0958aeb5c355b75d2cedf67e15ebb5098e980 (patch)
treef62ef1b962316c6049d97f7000fc3d734dd1f1fa
parent8cc57be75a8d90e08426721c628709b29034c37f (diff)
two memory leaks
git-svn-id: http://svn.miranda-ng.org/main/trunk@5044 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
-rw-r--r--plugins/FingerprintNG/src/fingerprint.cpp5
-rw-r--r--plugins/FingerprintNG/src/global.h2
-rw-r--r--plugins/FingerprintNG/src/main.cpp1
-rw-r--r--src/mir_core/miranda.cpp1
-rw-r--r--src/mir_core/miranda.h4
-rw-r--r--src/mir_core/subclass.cpp5
6 files changed, 18 insertions, 0 deletions
diff --git a/plugins/FingerprintNG/src/fingerprint.cpp b/plugins/FingerprintNG/src/fingerprint.cpp
index 30f6655b4c..8f2cb0c060 100644
--- a/plugins/FingerprintNG/src/fingerprint.cpp
+++ b/plugins/FingerprintNG/src/fingerprint.cpp
@@ -1179,3 +1179,8 @@ void InitFingerModule()
CreateServiceFunction(MS_FP_SAMECLIENTSW, ServiceSameClientsW);
CreateServiceFunction(MS_FP_GETCLIENTICONW, ServiceGetClientIconW);
}
+
+void UninitFingerModule()
+{
+ arMonitoredWindows.destroy();
+}
diff --git a/plugins/FingerprintNG/src/global.h b/plugins/FingerprintNG/src/global.h
index 0a3cf95668..5bca488be6 100644
--- a/plugins/FingerprintNG/src/global.h
+++ b/plugins/FingerprintNG/src/global.h
@@ -131,6 +131,8 @@ typedef struct _foundInfo
void ClearFI();
void InitFingerModule(void);
+void UninitFingerModule(void);
+
int OnOptInitialise(WPARAM wParam, LPARAM lParam);
int OnExtraImageApply(WPARAM wParam, LPARAM lParam);
diff --git a/plugins/FingerprintNG/src/main.cpp b/plugins/FingerprintNG/src/main.cpp
index ce92350c51..b35de299ba 100644
--- a/plugins/FingerprintNG/src/main.cpp
+++ b/plugins/FingerprintNG/src/main.cpp
@@ -75,5 +75,6 @@ extern "C" int __declspec(dllexport) Unload()
HeapDestroy(hHeap);
ClearFI();
+ UninitFingerModule();
return 0;
}
diff --git a/src/mir_core/miranda.cpp b/src/mir_core/miranda.cpp
index 6fcd531f87..856a7394eb 100644
--- a/src/mir_core/miranda.cpp
+++ b/src/mir_core/miranda.cpp
@@ -84,6 +84,7 @@ MIR_CORE_DLL(void) UnloadCoreModule(void)
CloseHandle(hThreadQueueEmpty);
TlsFree(mir_tls);
+ UninitSubclassing();
UninitProtocols();
DestroyModularEngine();
UnloadLangPackModule();
diff --git a/src/mir_core/miranda.h b/src/mir_core/miranda.h
index 1bfebf35c7..608b16fe78 100644
--- a/src/mir_core/miranda.h
+++ b/src/mir_core/miranda.h
@@ -90,6 +90,10 @@ TCHAR* LangPackTranslateStringT(int hLangpack, const TCHAR* tszEnglish);
HTREEITEM FindNamedTreeItemAtRoot(HWND hwndTree, const TCHAR* name);
+/**** subclass.cpp *********************************************************************/
+
+void UninitSubclassing();
+
/**** threads.cpp **********************************************************************/
extern DWORD mir_tls;
diff --git a/src/mir_core/subclass.cpp b/src/mir_core/subclass.cpp
index 4bf17e5de2..fe63f715eb 100644
--- a/src/mir_core/subclass.cpp
+++ b/src/mir_core/subclass.cpp
@@ -33,6 +33,11 @@ struct MSubclassData
static LIST<MSubclassData> arSubclass(10, LIST<MSubclassData>::FTSortFunc(HandleKeySortT));
+void UninitSubclassing()
+{
+ arSubclass.destroy();
+}
+
/////////////////////////////////////////////////////////////////////////////////////////
static LRESULT CALLBACK MSubclassWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)