From ac25aecfd65f1e68677ca93e0f26138fd9dc6f3e Mon Sep 17 00:00:00 2001 From: George Hazan Date: Tue, 30 Jan 2018 19:32:27 +0300 Subject: fix for occasional crash --- src/mir_app/src/miranda.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/mir_app/src/miranda.cpp b/src/mir_app/src/miranda.cpp index 089393135d..baf7bf989b 100644 --- a/src/mir_app/src/miranda.cpp +++ b/src/mir_app/src/miranda.cpp @@ -111,16 +111,19 @@ static void __cdecl compactHeapsThread(void*) Thread_SetName("compactHeapsThread"); while (!Miranda_IsTerminated()) { - HANDLE hHeaps[256]; - DWORD hc; SleepEx((1000 * 60) * 5, TRUE); // every 5 minutes - hc = GetProcessHeaps(255, (PHANDLE)&hHeaps); + + HANDLE hHeaps[256]; + DWORD hc = GetProcessHeaps(255, (PHANDLE)&hHeaps); if (hc != 0 && hc < 256) { - DWORD j; - for (j = 0; j < hc; j++) - HeapCompact(hHeaps[j], 0); + __try { + for (DWORD j = 0; j < hc; j++) + HeapCompact(hHeaps[j], 0); + } + __except (EXCEPTION_EXECUTE_HANDLER) + {} } - } //while + } } void(*SetIdleCallback) (void) = nullptr; -- cgit v1.2.3