mirror of
https://github.com/chibicitiberiu/rainmeter-studio.git
synced 2024-02-24 04:33:31 +00:00
Ping: Fixed crash on refresh with FinishAction option.
This commit is contained in:
parent
8ad91f7799
commit
a80af60dbc
@ -42,7 +42,8 @@ struct MeasureData
|
|||||||
updateCounter(),
|
updateCounter(),
|
||||||
threadActive(false),
|
threadActive(false),
|
||||||
value(),
|
value(),
|
||||||
finishAction()
|
finishAction(),
|
||||||
|
skin(NULL)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -72,8 +73,6 @@ PLUGIN_EXPORT void Initialize(void** data, void* rm)
|
|||||||
{
|
{
|
||||||
MeasureData* measure = new MeasureData;
|
MeasureData* measure = new MeasureData;
|
||||||
*data = measure;
|
*data = measure;
|
||||||
|
|
||||||
measure->skin = RmGetSkin(rm);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
PLUGIN_EXPORT void Reload(void* data, void* rm, double* maxValue)
|
PLUGIN_EXPORT void Reload(void* data, void* rm, double* maxValue)
|
||||||
@ -122,6 +121,7 @@ PLUGIN_EXPORT void Reload(void* data, void* rm, double* maxValue)
|
|||||||
measure->timeout = RmReadInt(rm, L"Timeout", 30000);
|
measure->timeout = RmReadInt(rm, L"Timeout", 30000);
|
||||||
measure->timeoutValue = RmReadDouble(rm, L"TimeoutValue", 30000.0);
|
measure->timeoutValue = RmReadDouble(rm, L"TimeoutValue", 30000.0);
|
||||||
measure->finishAction = RmReadString(rm, L"FinishAction", L"", false);
|
measure->finishAction = RmReadString(rm, L"FinishAction", L"", false);
|
||||||
|
measure->skin = RmGetSkin(rm);
|
||||||
}
|
}
|
||||||
|
|
||||||
DWORD WINAPI NetworkThreadProc(void* pParam)
|
DWORD WINAPI NetworkThreadProc(void* pParam)
|
||||||
@ -141,6 +141,11 @@ DWORD WINAPI NetworkThreadProc(void* pParam)
|
|||||||
|
|
||||||
ICMP_ECHO_REPLY* reply = (ICMP_ECHO_REPLY*)buffer;
|
ICMP_ECHO_REPLY* reply = (ICMP_ECHO_REPLY*)buffer;
|
||||||
value = (reply->Status != IP_SUCCESS) ? measure->timeoutValue : reply->RoundTripTime;
|
value = (reply->Status != IP_SUCCESS) ? measure->timeoutValue : reply->RoundTripTime;
|
||||||
|
|
||||||
|
if (!measure->finishAction.empty())
|
||||||
|
{
|
||||||
|
RmExecute(measure->skin, measure->finishAction.c_str());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
HMODULE module = NULL;
|
HMODULE module = NULL;
|
||||||
@ -150,11 +155,6 @@ DWORD WINAPI NetworkThreadProc(void* pParam)
|
|||||||
{
|
{
|
||||||
measure->value = value;
|
measure->value = value;
|
||||||
measure->threadActive = false;
|
measure->threadActive = false;
|
||||||
|
|
||||||
if (!measure->finishAction.empty())
|
|
||||||
{
|
|
||||||
RmExecute(measure->skin, measure->finishAction.c_str());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user