From 3b50bc71b3afad43a10743b60d9f158f750e2c25 Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Thu, 4 Jan 2024 17:45:59 +0300 Subject: [PATCH] Fixed possible rare crash from voice messages with ttl. --- .../SourceFiles/history/view/media/history_view_document.cpp | 5 +++-- Telegram/SourceFiles/mainwidget.cpp | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Telegram/SourceFiles/history/view/media/history_view_document.cpp b/Telegram/SourceFiles/history/view/media/history_view_document.cpp index cd1501e97..7ca7bc747 100644 --- a/Telegram/SourceFiles/history/view/media/history_view_document.cpp +++ b/Telegram/SourceFiles/history/view/media/history_view_document.cpp @@ -346,7 +346,8 @@ Document::Document( ::Media::Player::instance()->tracksFinished( ) | rpl::filter([=](AudioMsgId::Type type) { return (type == AudioMsgId::Type::Voice); - }) | rpl::to_empty + }) | rpl::to_empty, + ::Media::Player::instance()->stops(AudioMsgId::Type::Voice) ) | rpl::start_with_next([=]() mutable { _drawTtl = nullptr; const auto item = _parent->data(); @@ -917,7 +918,7 @@ void Document::draw( .highlight = highlightRequest ? &*highlightRequest : nullptr, }); } - if (_parent->data()->media()->ttlSeconds()) { + if (_parent->data()->media() && _parent->data()->media()->ttlSeconds()) { const auto &fg = context.outbg ? st::historyFileOutIconFg : st::historyFileInIconFg; diff --git a/Telegram/SourceFiles/mainwidget.cpp b/Telegram/SourceFiles/mainwidget.cpp index a62d53826..fe92a6de1 100644 --- a/Telegram/SourceFiles/mainwidget.cpp +++ b/Telegram/SourceFiles/mainwidget.cpp @@ -755,7 +755,6 @@ void MainWidget::handleAudioUpdate(const Media::Player::TrackState &state) { const auto item = session().data().message(state.id.contextId()); if (!Media::Player::IsStoppedOrStopping(state.state)) { const auto ttlSeconds = item - && !item->out() && item->media() && item->media()->ttlSeconds(); if (!ttlSeconds) {