From ee0691d3871c2d95906b5171d2ed6e9a95588dbc Mon Sep 17 00:00:00 2001 From: George Hazan Date: Thu, 22 May 2025 12:28:49 +0300 Subject: =?UTF-8?q?fixes=20#5026=20(CrashDumper:=20=D0=BF=D0=B0=D0=B4?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BF=D1=80=D0=B8=20=D0=B2=D1=8B?= =?UTF-8?q?=D0=B7=D0=BE=D0=B2=D0=B5=20=D0=BB=D1=8E=D0=B1=D0=BE=D0=B3=D0=BE?= =?UTF-8?q?=20=D0=BF=D1=83=D0=BD=D0=BA=D1=82=D0=B0=20=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D1=8E,=20=D1=81=D0=B2=D1=8F=D0=B7=D0=B0=D0=BD=D0=BD=D0=BE?= =?UTF-8?q?=D0=B3=D0=BE=20=D1=81=20=D0=BF=D0=BB=D0=B0=D0=B3=D0=B8=D0=BD?= =?UTF-8?q?=D0=BE=D0=BC)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/mir_app/src/mir_app.def | 2 +- src/mir_app/src/mir_app64.def | 2 +- src/mir_app/src/srmm_base.cpp | 2 +- src/mir_app/src/srmm_log.cpp | 16 +++++++--------- 4 files changed, 10 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/mir_app/src/mir_app.def b/src/mir_app/src/mir_app.def index eba807313d..ef8f3858d5 100644 --- a/src/mir_app/src/mir_app.def +++ b/src/mir_app/src/mir_app.def @@ -892,7 +892,7 @@ Clist_GroupSaveExpanded @1003 NONAME ?GetInput@CSrmmBaseDialog@@QBEPAUHWND__@@XZ @1024 NONAME ?Srmm_ApplyOptions@@YGXXZ @1025 NONAME ?OnOptionsApplied@CSrmmBaseDialog@@UAEXXZ @1026 NONAME -?Srmm_GetWindowClass@@YGPAUSrmmLogWindowClass@@PAVCMsgDialog@@@Z @1027 NONAME +?Srmm_GetWindowClass@@YGPAUSrmmLogWindowClass@@_NI@Z @1027 NONAME ?addColor@CMPluginBase@@QAEHPBD0PB_W1K@Z @1028 NONAME ?addFont@CMPluginBase@@QAEHPBD0PB_W111HHPAUtagLOGFONTW@@K@Z @1029 NONAME ?IsReadonly@Contact@@YG_NI@Z @1030 NONAME diff --git a/src/mir_app/src/mir_app64.def b/src/mir_app/src/mir_app64.def index aa2b1a2bbb..f69bb6e58d 100644 --- a/src/mir_app/src/mir_app64.def +++ b/src/mir_app/src/mir_app64.def @@ -892,7 +892,7 @@ Clist_GroupSaveExpanded @1003 NONAME ?GetInput@CSrmmBaseDialog@@QEBAPEAUHWND__@@XZ @1024 NONAME ?Srmm_ApplyOptions@@YAXXZ @1025 NONAME ?OnOptionsApplied@CSrmmBaseDialog@@UEAAXXZ @1026 NONAME -?Srmm_GetWindowClass@@YAPEAUSrmmLogWindowClass@@PEAVCMsgDialog@@@Z @1027 NONAME +?Srmm_GetWindowClass@@YAPEAUSrmmLogWindowClass@@_NI@Z @1027 NONAME ?addColor@CMPluginBase@@QEAAHPEBD0PEB_W1K@Z @1028 NONAME ?addFont@CMPluginBase@@QEAAHPEBD0PEB_W111HHPEAUtagLOGFONTW@@K@Z @1029 NONAME ?IsReadonly@Contact@@YA_NI@Z @1030 NONAME diff --git a/src/mir_app/src/srmm_base.cpp b/src/mir_app/src/srmm_base.cpp index 52c19a6b20..2268f3c30a 100644 --- a/src/mir_app/src/srmm_base.cpp +++ b/src/mir_app/src/srmm_base.cpp @@ -516,7 +516,7 @@ bool CSrmmBaseDialog::OnInitDialog() m_message.Hide(); auto *pDlg = (CMsgDialog *)this; - if (auto *pLogWindowClass = Srmm_GetWindowClass(pDlg)) { + if (auto *pLogWindowClass = Srmm_GetWindowClass(pDlg->isChat(), pDlg->m_hContact)) { m_pLog = pLogWindowClass->pfnBuilder(*pDlg); m_pLog->Attach(); if (m_pLog->GetType() != 0) { // custom log type diff --git a/src/mir_app/src/srmm_log.cpp b/src/mir_app/src/srmm_log.cpp index 00e2982282..a2d094ce1a 100644 --- a/src/mir_app/src/srmm_log.cpp +++ b/src/mir_app/src/srmm_log.cpp @@ -42,14 +42,14 @@ void CheckLogOptions() ///////////////////////////////////////////////////////////////////////////////////////// -static bool sttEnableCustomLogs(CMsgDialog *pDlg) +static bool sttEnableCustomLogs(MCONTACT hContact) { // always enable custom log viewers for private chats - if (!pDlg) + if (hContact == INVALID_CONTACT_ID) return true; // check if custom viewers are forbidden for this particular account - auto *szProto = Proto_GetBaseAccountName(pDlg->m_hContact); + auto *szProto = Proto_GetBaseAccountName(hContact); if (szProto) { // hidden setting !!!!!!!! CMStringA szProtoList(db_get_sm(0, SRMM_MODULE, "DisableCustomLogsForProto")); @@ -69,14 +69,12 @@ static bool sttEnableCustomLogs(CMsgDialog *pDlg) return true; } -MIR_APP_DLL(SrmmLogWindowClass *) Srmm_GetWindowClass(CMsgDialog *pDlg) +MIR_APP_DLL(SrmmLogWindowClass *) Srmm_GetWindowClass(bool bGC, MCONTACT hContact) { - if (sttEnableCustomLogs(pDlg)) { - CMStringA szViewerName; - if (pDlg != nullptr) - szViewerName = db_get_sm(pDlg->m_hContact, SRMSGMOD, pDlg->isChat() ? "LoggerGC" : "Logger"); + if (sttEnableCustomLogs(hContact)) { + CMStringA szViewerName(db_get_sm(hContact, SRMSGMOD, bGC ? "LoggerGC" : "Logger")); if (szViewerName.IsEmpty()) - szViewerName = pDlg->isChat() ? g_loggerGC : g_logger; + szViewerName = bGC ? g_loggerGC : g_logger; for (auto &it : g_arLogClasses) if (szViewerName == it->szShortName) -- cgit v1.2.3