summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mir_app/src/srmm_base.cpp11
1 files changed, 4 insertions, 7 deletions
diff --git a/src/mir_app/src/srmm_base.cpp b/src/mir_app/src/srmm_base.cpp
index 1a83d7aa86..10bb17736a 100644
--- a/src/mir_app/src/srmm_base.cpp
+++ b/src/mir_app/src/srmm_base.cpp
@@ -638,13 +638,11 @@ void CSrmmBaseDialog::RedrawLog()
void CSrmmBaseDialog::UpdateChatLog()
{
- if (!m_si->pMI->bDatabase)
+ if (!m_si->pMI->bDatabase || m_si->bHistoryInit)
return;
GetFirstEvent();
- SESSION_INFO *tmp = g_chatApi.SM_CreateSession();
-
auto *szProto = Proto_GetBaseAccountName(m_hContact);
for (MEVENT hDbEvent = m_hDbEventFirst; hDbEvent; hDbEvent = db_event_next(m_hContact, hDbEvent)) {
DB::EventInfo dbei;
@@ -666,14 +664,13 @@ void CSrmmBaseDialog::UpdateChatLog()
gce.time = dbei.timestamp;
if (USERINFO *ui = g_chatApi.UM_FindUser(m_si, wszUserId))
gce.pszNick.w = ui->pszNick;
- SM_AddEvent(tmp, &gce, false);
+ SM_AddEvent(m_si, &gce, false);
}
}
}
- m_pLog->LogEvents(tmp->pLogEnd, false);
- g_chatApi.LM_RemoveAll(&tmp->pLog, &tmp->pLogEnd);
- delete tmp;
+ m_si->bHistoryInit = true;
+ m_pLog->LogEvents(m_si->pLogEnd, false);
}
/////////////////////////////////////////////////////////////////////////////////////////