From 5f5d5629f8e36f4eb6f9c478eb1b76a4cdb08b17 Mon Sep 17 00:00:00 2001 From: John Preston Date: Tue, 21 Jan 2020 13:50:00 +0300 Subject: [PATCH] Fix memory leak in media streaming. --- Telegram/SourceFiles/media/streaming/media_streaming_file.cpp | 1 + Telegram/SourceFiles/media/streaming/media_streaming_player.cpp | 2 ++ 2 files changed, 3 insertions(+) diff --git a/Telegram/SourceFiles/media/streaming/media_streaming_file.cpp b/Telegram/SourceFiles/media/streaming/media_streaming_file.cpp index 635065344..bf78ce6a6 100644 --- a/Telegram/SourceFiles/media/streaming/media_streaming_file.cpp +++ b/Telegram/SourceFiles/media/streaming/media_streaming_file.cpp @@ -309,6 +309,7 @@ void File::Context::readNextPacket() { if (i->second.size() == kMaxQueuedPackets) { processQueuedPackets(SleepPolicy::Allowed); } + Assert(i->second.size() < kMaxQueuedPackets); } else { // Still trying to read by drain. Assert(result.is()); diff --git a/Telegram/SourceFiles/media/streaming/media_streaming_player.cpp b/Telegram/SourceFiles/media/streaming/media_streaming_player.cpp index 9d38e5281..92652d82a 100644 --- a/Telegram/SourceFiles/media/streaming/media_streaming_player.cpp +++ b/Telegram/SourceFiles/media/streaming/media_streaming_player.cpp @@ -396,6 +396,8 @@ bool Player::fileProcessPackets( videoReceivedTill(till); }); _video->process(base::take(list)); + } else { + list.clear(); // Free non-needed packets. } } return fileReadMore();