From 07a736db6ad612818df2ec6bef222139ad1b5d58 Mon Sep 17 00:00:00 2001 From: Mikolaj Boc Date: Fri, 21 Apr 2023 16:07:22 +0200 Subject: [PATCH] Remove FileReader callbacks before assigning new ones MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This fixes the assert raised on overwriting event handlers Fixes: QTBUG-113041 Change-Id: Ie2afe09f4111ea542297b82a51382f1eb04ec960 Reviewed-by: Morten Johan Sørvig Reviewed-by: Aleksandr Reviakin --- src/corelib/platform/wasm/qstdweb.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/corelib/platform/wasm/qstdweb.cpp b/src/corelib/platform/wasm/qstdweb.cpp index 1ffa3ca8f3c..183d2e00167 100644 --- a/src/corelib/platform/wasm/qstdweb.cpp +++ b/src/corelib/platform/wasm/qstdweb.cpp @@ -623,17 +623,20 @@ void FileReader::readAsArrayBuffer(const Blob &blob) const void FileReader::onLoad(const std::function &onLoad) { - m_onLoad.reset(new EventCallback(m_fileReader, "load", onLoad)); + m_onLoad.reset(); + m_onLoad = std::make_unique(m_fileReader, "load", onLoad); } void FileReader::onError(const std::function &onError) { - m_onError.reset(new EventCallback(m_fileReader, "error", onError)); + m_onError.reset(); + m_onError = std::make_unique(m_fileReader, "error", onError); } void FileReader::onAbort(const std::function &onAbort) { - m_onAbort.reset(new EventCallback(m_fileReader, "abort", onAbort)); + m_onAbort.reset(); + m_onAbort = std::make_unique(m_fileReader, "abort", onAbort); } emscripten::val FileReader::val()