Fix crash when actions are executed by plugin threads after skin unload

This commit is contained in:
Birunthan Mohanathas
2013-03-21 14:29:59 +02:00
parent b7c1e16554
commit 9bf5871abf
3 changed files with 20 additions and 14 deletions

View File

@@ -1172,7 +1172,10 @@ LRESULT CALLBACK CRainmeter::MainWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LP
break;
case WM_RAINMETER_EXECUTE:
Rainmeter->ExecuteCommand((const WCHAR*)lParam, (CMeterWindow*)wParam);
if (Rainmeter->HasMeterWindow((CMeterWindow*)wParam))
{
Rainmeter->ExecuteCommand((const WCHAR*)lParam, (CMeterWindow*)wParam);
}
break;
default:
@@ -1598,6 +1601,19 @@ void CRainmeter::RemoveUnmanagedMeterWindow(CMeterWindow* meterWindow)
}
}
bool CRainmeter::HasMeterWindow(const CMeterWindow* meterWindow) const
{
for (auto it = m_MeterWindows.begin(); it != m_MeterWindows.end(); ++it)
{
if ((*it).second == meterWindow)
{
return true;
}
}
return false;
}
CMeterWindow* CRainmeter::GetMeterWindow(const std::wstring& folderPath)
{
const WCHAR* folderSz = folderPath.c_str();