From 8c7b39393968528b2c22f160bb2ad7d968ff2bf9 Mon Sep 17 00:00:00 2001 From: 0GreenClover0 Date: Fri, 3 Nov 2023 17:30:03 +0100 Subject: [PATCH] HackStudio: Create a progress bar update callback for each debug session Instead of moving it out of the Debugger, which would lead to it being null when trying to create next debug sessions afterwards. --- .../DevTools/HackStudio/Debugger/Debugger.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/Userland/DevTools/HackStudio/Debugger/Debugger.cpp b/Userland/DevTools/HackStudio/Debugger/Debugger.cpp index 9664029552..57a91318a8 100644 --- a/Userland/DevTools/HackStudio/Debugger/Debugger.cpp +++ b/Userland/DevTools/HackStudio/Debugger/Debugger.cpp @@ -140,13 +140,24 @@ Debugger::CreateDebugSessionResult Debugger::create_debug_session() return m_child_setup_callback(); return ErrorOr {}; }; - auto debug_session = Debug::DebugSession::exec_and_attach(m_executable_path, m_source_root, move(child_setup_callback), move(m_on_initialization_progress)); + + auto on_initialization_progress = [this](float progress) { + if (m_on_initialization_progress) + m_on_initialization_progress(progress); + }; + + auto debug_session = Debug::DebugSession::exec_and_attach(m_executable_path, m_source_root, move(child_setup_callback), move(on_initialization_progress)); VERIFY(!!debug_session); return { debug_session.release_nonnull(), Debug::DebugSession::Running }; } if (m_pid_to_attach.has_value()) { - auto debug_session = Debug::DebugSession::attach(m_pid_to_attach.value(), m_source_root, move(m_on_initialization_progress)); + auto on_initialization_progress = [this](float progress) { + if (m_on_initialization_progress) + m_on_initialization_progress(progress); + }; + + auto debug_session = Debug::DebugSession::attach(m_pid_to_attach.value(), m_source_root, move(on_initialization_progress)); VERIFY(!!debug_session); return { debug_session.release_nonnull(), Debug::DebugSession::Stopped }; }