diff options
author | George Hazan <ghazan@miranda.im> | 2018-02-02 13:27:14 +0300 |
---|---|---|
committer | George Hazan <ghazan@miranda.im> | 2018-02-02 13:27:14 +0300 |
commit | a7a6991d945a508d0f21ab34fd2f76ca15b95248 (patch) | |
tree | bf01e4414cea21d2494272d0d150afaae0438fa5 /plugins/StatusManager/src/AdvancedAutoAway/advancedautoaway.cpp | |
parent | 7253436a88270d83009626a1a5021658de85e8e8 (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.cpp | 21 |
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)); |