From 8e45b35ebea80f1be95deaa90a0a08d2e3179e15 Mon Sep 17 00:00:00 2001 From: Akash Mozumdar Date: Tue, 30 Oct 2018 21:21:21 -0400 Subject: [PATCH] refactor --- GUI/host/host.cc | 10 ++++---- GUI/main.cpp | 49 ++++++++++++++++++++----------------- extensions/removerepeat.cpp | 4 +-- 3 files changed, 33 insertions(+), 30 deletions(-) diff --git a/GUI/host/host.cc b/GUI/host/host.cc index 7b4cb35..234e42b 100644 --- a/GUI/host/host.cc +++ b/GUI/host/host.cc @@ -44,12 +44,12 @@ namespace { LOCK(hostMutex); std::vector removedThreads; - for (auto i : textThreadsByParams) - if (removeIf(i.first)) + for (auto[tp, thread] : textThreadsByParams) + if (removeIf(tp)) { - OnRemove(i.second); + OnRemove(thread); //delete i.second; // Artikash 7/24/2018: FIXME: Qt GUI updates on another thread, so I can't delete this yet. - removedThreads.push_back(i.first); + removedThreads.push_back(tp); } for (auto thread : removedThreads) textThreadsByParams.erase(thread); } @@ -153,7 +153,7 @@ namespace Host #ifdef _DEBUG // Check memory leaks LOCK(hostMutex); OnRemove = [](TextThread* textThread) { delete textThread; }; - for (auto i : processRecordsByIds) UnregisterProcess(i.first); + for (auto[pid, pr] : processRecordsByIds) UnregisterProcess(pid); delete textThreadsByParams[CONSOLE]; #endif } diff --git a/GUI/main.cpp b/GUI/main.cpp index 4caf23f..0fb8813 100644 --- a/GUI/main.cpp +++ b/GUI/main.cpp @@ -2,36 +2,39 @@ #include #include -char* GetCppExceptionInfo(EXCEPTION_POINTERS* exception) +namespace { - // See https://blogs.msdn.microsoft.com/oldnewthing/20100730-00/?p=13273 - // Not very reliable so use __try - __try { return ((char****)exception->ExceptionRecord->ExceptionInformation[2])[3][1][1] + 8; } - __except (EXCEPTION_EXECUTE_HANDLER) { return "Could not find"; } -} + char* GetCppExceptionInfo(EXCEPTION_POINTERS* exception) + { + // See https://blogs.msdn.microsoft.com/oldnewthing/20100730-00/?p=13273 + // Not very reliable so use __try + __try { return ((char****)exception->ExceptionRecord->ExceptionInformation[2])[3][1][1] + 8; } + __except (EXCEPTION_EXECUTE_HANDLER) { return "Could not find"; } + } -LONG WINAPI ExceptionHandler(EXCEPTION_POINTERS* exception) -{ - MEMORY_BASIC_INFORMATION info = {}; - VirtualQuery(exception->ExceptionRecord->ExceptionAddress, &info, sizeof(info)); - wchar_t moduleName[MAX_PATH] = {}; - GetModuleFileNameW((HMODULE)info.AllocationBase, moduleName, MAX_PATH); + LONG WINAPI ExceptionHandler(EXCEPTION_POINTERS* exception) + { + MEMORY_BASIC_INFORMATION info = {}; + VirtualQuery(exception->ExceptionRecord->ExceptionAddress, &info, sizeof(info)); + wchar_t moduleName[MAX_PATH] = {}; + GetModuleFileNameW((HMODULE)info.AllocationBase, moduleName, MAX_PATH); - std::wstringstream errorMsg; - errorMsg << std::uppercase << std::hex << - L"Error code: " << exception->ExceptionRecord->ExceptionCode << std::endl << - L"Error address: " << (uint64_t)exception->ExceptionRecord->ExceptionAddress << std::endl << - L"Error in module: " << moduleName << std::endl; + std::wstringstream errorMsg; + errorMsg << std::uppercase << std::hex << + L"Error code: " << exception->ExceptionRecord->ExceptionCode << std::endl << + L"Error address: " << (uint64_t)exception->ExceptionRecord->ExceptionAddress << std::endl << + L"Error in module: " << moduleName << std::endl; - if (exception->ExceptionRecord->ExceptionCode == 0xE06D7363) - errorMsg << "Additional info: " << GetCppExceptionInfo(exception) << std::endl; + if (exception->ExceptionRecord->ExceptionCode == 0xE06D7363) + errorMsg << "Additional info: " << GetCppExceptionInfo(exception) << std::endl; - for (int i = 0; i < exception->ExceptionRecord->NumberParameters; ++i) - errorMsg << L"Additional info: " << exception->ExceptionRecord->ExceptionInformation[i] << std::endl; + for (int i = 0; i < exception->ExceptionRecord->NumberParameters; ++i) + errorMsg << L"Additional info: " << exception->ExceptionRecord->ExceptionInformation[i] << std::endl; - MessageBoxW(NULL, errorMsg.str().c_str(), L"Textractor ERROR", MB_ICONERROR); + MessageBoxW(NULL, errorMsg.str().c_str(), L"Textractor ERROR", MB_ICONERROR); - return EXCEPTION_CONTINUE_SEARCH; + return EXCEPTION_CONTINUE_SEARCH; + } } int main(int argc, char *argv[]) diff --git a/extensions/removerepeat.cpp b/extensions/removerepeat.cpp index b0baa0a..544649b 100644 --- a/extensions/removerepeat.cpp +++ b/extensions/removerepeat.cpp @@ -6,8 +6,8 @@ bool RemoveRepeatedChars(std::wstring& sentence) { int repeatNumber = 0; wchar_t prevChar = sentence[0]; - for (auto i : sentence) - if (i == prevChar) repeatNumber++; + for (auto c : sentence) + if (c == prevChar) repeatNumber++; else break; if (repeatNumber == 1) return false;