From a4b3eb6b2d23591f86cc2efd76c894520b93d071 Mon Sep 17 00:00:00 2001 From: Tom Date: Thu, 31 Dec 2020 11:16:30 -0700 Subject: [PATCH] LibWeb: Clear circular download reference when download finished --- Libraries/LibWeb/Loader/ResourceLoader.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Libraries/LibWeb/Loader/ResourceLoader.cpp b/Libraries/LibWeb/Loader/ResourceLoader.cpp index 4d3de8480a..30611c579d 100644 --- a/Libraries/LibWeb/Loader/ResourceLoader.cpp +++ b/Libraries/LibWeb/Loader/ResourceLoader.cpp @@ -184,7 +184,10 @@ void ResourceLoader::load(const LoadRequest& request, Function&>(download) = nullptr; }); + deferred_invoke([download](auto&) { + // Clear circular reference of `download` captured by copy + const_cast(*download).on_buffered_download_finish = nullptr; + }); success_callback(payload, response_headers); }; download->set_should_buffer_all_input(true);