From c560eabeb2821e3054409a72e49c469c7d965d3d Mon Sep 17 00:00:00 2001 From: Xinyu Hou Date: Tue, 25 Nov 2014 11:30:47 +0000 Subject: [PATCH] Fixed close null mutex and condvar --- src/lib/arch/win32/ArchNetworkWinsock.cpp | 7 +++++-- src/lib/arch/win32/ArchTaskBarWindows.cpp | 13 ++++++++++--- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/lib/arch/win32/ArchNetworkWinsock.cpp b/src/lib/arch/win32/ArchNetworkWinsock.cpp index 80af8ecd..ccc2223c 100644 --- a/src/lib/arch/win32/ArchNetworkWinsock.cpp +++ b/src/lib/arch/win32/ArchNetworkWinsock.cpp @@ -96,7 +96,8 @@ ArchNetAddressImpl::alloc(size_t size) // ArchNetworkWinsock // -ArchNetworkWinsock::ArchNetworkWinsock() +ArchNetworkWinsock::ArchNetworkWinsock() : + m_mutex(NULL) { } @@ -109,7 +110,9 @@ ArchNetworkWinsock::~ArchNetworkWinsock() WSACleanup_winsock = NULL; s_networkModule = NULL; } - ARCH->closeMutex(m_mutex); + if (m_mutex != NULL) { + ARCH->closeMutex(m_mutex); + } EventList::iterator it; for (it = m_unblockEvents.begin(); it != m_unblockEvents.end(); it++) { diff --git a/src/lib/arch/win32/ArchTaskBarWindows.cpp b/src/lib/arch/win32/ArchTaskBarWindows.cpp index e6a01db7..021c022a 100644 --- a/src/lib/arch/win32/ArchTaskBarWindows.cpp +++ b/src/lib/arch/win32/ArchTaskBarWindows.cpp @@ -39,7 +39,10 @@ static const UINT kFirstReceiverID = WM_USER + 14; ArchTaskBarWindows* ArchTaskBarWindows::s_instance = NULL; ArchTaskBarWindows::ArchTaskBarWindows() : - m_nextID(kFirstReceiverID) + m_nextID(kFirstReceiverID), + m_thread(NULL), + m_condVar(NULL), + m_mutex(NULL) { // save the singleton instance s_instance = this; @@ -52,8 +55,12 @@ ArchTaskBarWindows::~ArchTaskBarWindows() ARCH->wait(m_thread, -1.0); ARCH->closeThread(m_thread); } - ARCH->closeCondVar(m_condVar); - ARCH->closeMutex(m_mutex); + if (m_condVar != NULL) { + ARCH->closeCondVar(m_condVar); + } + if (m_mutex != NULL) { + ARCH->closeMutex(m_mutex); + } s_instance = NULL; }