From 09c0958aeb5c355b75d2cedf67e15ebb5098e980 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Wed, 19 Jun 2013 16:40:53 +0000 Subject: two memory leaks git-svn-id: http://svn.miranda-ng.org/main/trunk@5044 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/FingerprintNG/src/fingerprint.cpp | 5 +++++ plugins/FingerprintNG/src/global.h | 2 ++ plugins/FingerprintNG/src/main.cpp | 1 + src/mir_core/miranda.cpp | 1 + src/mir_core/miranda.h | 4 ++++ src/mir_core/subclass.cpp | 5 +++++ 6 files changed, 18 insertions(+) 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 arSubclass(10, LIST::FTSortFunc(HandleKeySortT)); +void UninitSubclassing() +{ + arSubclass.destroy(); +} + ///////////////////////////////////////////////////////////////////////////////////////// static LRESULT CALLBACK MSubclassWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) -- cgit v1.2.3