mirror of
https://github.com/chibicitiberiu/rainmeter-studio.git
synced 2024-02-24 04:33:31 +00:00
Added NULL checks for the CConfigParser::ReadString()'s parameters (http://code.google.com/p/rainmeter/issues/detail?id=105).
The font and registry handle are now free'ed properly if Initialize() is called multiple times.
This commit is contained in:
parent
81f674117d
commit
9fcd6896de
@ -136,6 +136,19 @@ const std::wstring& CConfigParser::ReadString(LPCTSTR section, LPCTSTR key, LPCT
|
|||||||
{
|
{
|
||||||
static std::wstring result;
|
static std::wstring result;
|
||||||
|
|
||||||
|
if (section == NULL)
|
||||||
|
{
|
||||||
|
section = L"";
|
||||||
|
}
|
||||||
|
if (key == NULL)
|
||||||
|
{
|
||||||
|
key = L"";
|
||||||
|
}
|
||||||
|
if (defValue == NULL)
|
||||||
|
{
|
||||||
|
defValue = L"";
|
||||||
|
}
|
||||||
|
|
||||||
result = GetValue(section, key, defValue);
|
result = GetValue(section, key, defValue);
|
||||||
if (result == defValue)
|
if (result == defValue)
|
||||||
{
|
{
|
||||||
|
@ -154,6 +154,7 @@ void CMeasureRegistry::ReadConfig(CConfigParser& parser, const WCHAR* section)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Try to open the key
|
// Try to open the key
|
||||||
|
if(m_RegKey) RegCloseKey(m_RegKey);
|
||||||
RegOpenKeyEx(m_HKey, m_RegKeyName.c_str(), 0, KEY_READ, &m_RegKey);
|
RegOpenKeyEx(m_HKey, m_RegKeyName.c_str(), 0, KEY_READ, &m_RegKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -106,6 +106,7 @@ void CMeterString::Initialize()
|
|||||||
{
|
{
|
||||||
CMeter::Initialize();
|
CMeter::Initialize();
|
||||||
|
|
||||||
|
if(m_FontFamily) delete m_FontFamily;
|
||||||
m_FontFamily = new FontFamily(m_FontFace.c_str());
|
m_FontFamily = new FontFamily(m_FontFace.c_str());
|
||||||
Status status = m_FontFamily->GetLastStatus();
|
Status status = m_FontFamily->GetLastStatus();
|
||||||
if(Ok != status)
|
if(Ok != status)
|
||||||
@ -140,10 +141,12 @@ void CMeterString::Initialize()
|
|||||||
|
|
||||||
if (m_FontFamily)
|
if (m_FontFamily)
|
||||||
{
|
{
|
||||||
|
if(m_Font) delete m_Font;
|
||||||
m_Font = new Gdiplus::Font(m_FontFamily, size, style);
|
m_Font = new Gdiplus::Font(m_FontFamily, size, style);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
if(m_Font) delete m_Font;
|
||||||
m_Font = new Gdiplus::Font(FontFamily::GenericSansSerif(), size, style);
|
m_Font = new Gdiplus::Font(FontFamily::GenericSansSerif(), size, style);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user