From 0bad6355d0c06564804eb629ba9874a6799f0561 Mon Sep 17 00:00:00 2001 From: LoRd_MuldeR Date: Sat, 2 May 2015 20:52:10 +0200 Subject: [PATCH] Fixed a memory leak + fixed check condition. --- MUtilities_VS2013.vcxproj | 4 ++-- src/Registry_Win32.cpp | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/MUtilities_VS2013.vcxproj b/MUtilities_VS2013.vcxproj index edd0cde..1eccd5d 100644 --- a/MUtilities_VS2013.vcxproj +++ b/MUtilities_VS2013.vcxproj @@ -164,7 +164,7 @@ Windows true $(SolutionDir)\..\Prerequisites\Qt4\MSVC-2013\Debug\lib;$(SolutionDir)\..\Prerequisites\VisualLeakDetector\lib\Win32 - QtCored4.lib;QtGuid4.lib;Winmm.lib;Psapi.lib;Sensapi.lib;PowrProf.lib;%(AdditionalDependencies) + QtCored4.lib;QtGuid4.lib;Winmm.lib;Psapi.lib;Sensapi.lib;PowrProf.lib;Shlwapi.lib;%(AdditionalDependencies) @@ -193,7 +193,7 @@ true true $(SolutionDir)\..\Prerequisites\Qt4\MSVC-2013\Shared\lib;$(SolutionDir)\..\Prerequisites\VisualLeakDetector\lib\Win32 - QtCore4.lib;QtGui4.lib;Winmm.lib;Psapi.lib;Sensapi.lib;PowrProf.lib;%(AdditionalDependencies) + QtCore4.lib;QtGui4.lib;Winmm.lib;Psapi.lib;Sensapi.lib;PowrProf.lib;Shlwapi.lib;%(AdditionalDependencies) false diff --git a/src/Registry_Win32.cpp b/src/Registry_Win32.cpp index b1b67d4..5e8b09d 100644 --- a/src/Registry_Win32.cpp +++ b/src/Registry_Win32.cpp @@ -106,6 +106,7 @@ MUtils::Registry::RegistryKey::~RegistryKey(void) p->m_hKey = NULL; p->m_isOpen = false; } + delete p; } inline bool MUtils::Registry::RegistryKey::isOpen(void) @@ -128,7 +129,7 @@ bool MUtils::Registry::RegistryKey::value_write(const QString &valueName, const bool MUtils::Registry::RegistryKey::value_read(const QString &valueName, quint32 &value) const { DWORD size = sizeof(quint32), type = -1; - CHECK_STATUS(false); + CHECK_STATUS(true); return (RegQueryValueEx(p->m_hKey, valueName.isEmpty() ? NULL : MUTILS_WCHR(valueName), 0, &type, reinterpret_cast(&value), &size) == ERROR_SUCCESS) && (type == REG_DWORD); } @@ -136,7 +137,7 @@ bool MUtils::Registry::RegistryKey::value_read(const QString &valueName, QString { wchar_t buffer[2048]; DWORD size = sizeof(wchar_t) * 2048, type = -1; - CHECK_STATUS(false); + CHECK_STATUS(true); if((RegQueryValueEx(p->m_hKey, valueName.isEmpty() ? NULL : MUTILS_WCHR(valueName), 0, &type, reinterpret_cast(&value), &size) == ERROR_SUCCESS) && ((type == REG_SZ) || (type == REG_EXPAND_SZ))) { value = QString::fromUtf16(reinterpret_cast(buffer)); -- 2.11.4.GIT