summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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)