From f53397e26a2d8d80b0c92494a8ff8f725ff71256 Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Sun, 31 Dec 2023 12:34:14 +0300 Subject: [PATCH] Fixed possible crash from voice messages with ttl. --- .../history/view/media/history_view_document.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Telegram/SourceFiles/history/view/media/history_view_document.cpp b/Telegram/SourceFiles/history/view/media/history_view_document.cpp index 1d487fe25..07e82409e 100644 --- a/Telegram/SourceFiles/history/view/media/history_view_document.cpp +++ b/Telegram/SourceFiles/history/view/media/history_view_document.cpp @@ -326,13 +326,13 @@ Document::Document( return (type == AudioMsgId::Type::Voice); }) | rpl::to_empty ) | rpl::start_with_next([=]() mutable { + _drawTtl = nullptr; const auto item = _parent->data(); - // Destroys this. - ClearMediaAsExpired(_parent->data()); if (lifetime) { - _drawTtl = nullptr; base::take(lifetime)->destroy(); } + // Destroys this. + ClearMediaAsExpired(item); }, *lifetime); _drawTtl = CreateTtlPaintCallback(lifetime, [=] { repaint(); }); @@ -437,7 +437,7 @@ QSize Document::countOptimalSize() { const auto voice = Get(); if (voice) { const auto session = &_realParent->history()->session(); - if (IsVoiceOncePlayable(_parent->data()) + if (_parent->data()->media()->ttlSeconds() || (!session->premium() && !session->api().transcribes().trialsSupport())) { voice->transcribe = nullptr;