summaryrefslogtreecommitdiff
path: root/plugins/StatusManager/src/AdvancedAutoAway/advancedautoaway.cpp
diff options
context:
space:
mode:
authorGeorge Hazan <ghazan@miranda.im>2018-02-02 13:27:14 +0300
committerGeorge Hazan <ghazan@miranda.im>2018-02-02 13:27:14 +0300
commita7a6991d945a508d0f21ab34fd2f76ca15b95248 (patch)
treebf01e4414cea21d2494272d0d150afaae0438fa5 /plugins/StatusManager/src/AdvancedAutoAway/advancedautoaway.cpp
parent7253436a88270d83009626a1a5021658de85e8e8 (diff)
StatusManager:
- fixes #1129 (Status Manager broked. When I change profile - not happend) - all standard memory allocation routines replaced with mir_* (more effective) - classes used to allocate memory instead of manual code
Diffstat (limited to 'plugins/StatusManager/src/AdvancedAutoAway/advancedautoaway.cpp')
-rw-r--r--plugins/StatusManager/src/AdvancedAutoAway/advancedautoaway.cpp21
1 files changed, 6 insertions, 15 deletions
diff --git a/plugins/StatusManager/src/AdvancedAutoAway/advancedautoaway.cpp b/plugins/StatusManager/src/AdvancedAutoAway/advancedautoaway.cpp
index b37830b90f..64eb4c3f30 100644
--- a/plugins/StatusManager/src/AdvancedAutoAway/advancedautoaway.cpp
+++ b/plugins/StatusManager/src/AdvancedAutoAway/advancedautoaway.cpp
@@ -187,20 +187,15 @@ static int changeState(SMProto &setting, STATES newState)
if (setting.curState != SET_ORGSTATUS && setting.curState != ACTIVE && setting.statusChanged) {
/* change the awaymessage */
if (setting.m_szMsg != nullptr) {
- free(setting.m_szMsg);
+ mir_free(setting.m_szMsg);
setting.m_szMsg = nullptr;
}
- if (db_get_b(0, AAAMODULENAME, StatusModeToDbSetting(setting.m_status, SETTING_MSGCUSTOM), FALSE)) {
- DBVARIANT dbv;
- if (!db_get_ws(0, AAAMODULENAME, StatusModeToDbSetting(setting.m_status, SETTING_STATUSMSG), &dbv)) {
- setting.m_szMsg = wcsdup(dbv.ptszVal);
- db_free(&dbv);
- }
- }
+ if (db_get_b(0, AAAMODULENAME, StatusModeToDbSetting(setting.m_status, SETTING_MSGCUSTOM), FALSE))
+ setting.m_szMsg = db_get_wsa(0, AAAMODULENAME, StatusModeToDbSetting(setting.m_status, SETTING_STATUSMSG));
}
else if (setting.m_szMsg != nullptr) {
- free(setting.m_szMsg);
+ mir_free(setting.m_szMsg);
setting.m_szMsg = nullptr;
}
@@ -324,14 +319,10 @@ static VOID CALLBACK AutoAwayTimer(HWND, UINT, UINT_PTR, DWORD)
}
if (confirm || statusChanged) {
- TProtoSettings ps = protoList;
- for (int i = 0; i < ps.getCount(); i++) {
- if (ps[i].m_szMsg)
- ps[i].m_szMsg = wcsdup(ps[i].m_szMsg);
-
+ TProtoSettings ps(protoList);
+ for (int i = 0; i < ps.getCount(); i++)
if (ps[i].m_status == ID_STATUS_DISABLED)
ps[i].m_szName = "";
- }
if (confirm)
confirmDialog = ShowConfirmDialogEx(&ps, db_get_w(0, AAAMODULENAME, SETTING_CONFIRMDELAY, 5));