summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorItamar <itamar8910@gmail.com>2023-02-18 13:15:25 +0200
committerAndreas Kling <kling@serenityos.org>2023-02-24 19:09:27 +0100
commit58c4fe52d4c522a7ca3c57614377fbe17d9cdfa8 (patch)
treed2dd655e8631d614e0687d28ee17cf1cc6bb7899
parentff6fb2cb10a5b2223b8bba34bb725c70201d91c0 (diff)
downloadserenity-58c4fe52d4c522a7ca3c57614377fbe17d9cdfa8.zip
HackStudio: Fix event loop usage in debugger callbacks
These callbacks are called from a different thread than the UI thread, so we need to explicitly use the Application's event loop to perform GUI logic.
-rw-r--r--Userland/DevTools/HackStudio/HackStudioWidget.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/Userland/DevTools/HackStudio/HackStudioWidget.cpp b/Userland/DevTools/HackStudio/HackStudioWidget.cpp
index 1eb7e6ec52..55497033ed 100644
--- a/Userland/DevTools/HackStudio/HackStudioWidget.cpp
+++ b/Userland/DevTools/HackStudio/HackStudioWidget.cpp
@@ -1050,7 +1050,7 @@ void HackStudioWidget::initialize_debugger()
}
dbgln("Debugger stopped at source position: {}:{}", source_position.value().file_path, source_position.value().line_number);
- deferred_invoke([this, source_position, &regs] {
+ GUI::Application::the()->event_loop().deferred_invoke([this, source_position, &regs] {
m_current_editor_in_execution = get_editor_of_file(source_position.value().file_path);
if (m_current_editor_in_execution)
m_current_editor_in_execution->editor().set_execution_position(source_position.value().line_number - 1);
@@ -1059,20 +1059,20 @@ void HackStudioWidget::initialize_debugger()
m_disassembly_widget->update_state(*Debugger::the().session(), regs);
HackStudioWidget::reveal_action_tab(*m_debug_info_widget);
});
- Core::EventLoop::wake_current();
+ GUI::Application::the()->event_loop().wake();
return Debugger::HasControlPassedToUser::Yes;
},
[this]() {
- deferred_invoke([this] {
+ GUI::Application::the()->event_loop().deferred_invoke([this] {
m_debug_info_widget->set_debug_actions_enabled(false);
if (m_current_editor_in_execution)
m_current_editor_in_execution->editor().clear_execution_position();
});
- Core::EventLoop::wake_current();
+ GUI::Application::the()->event_loop().wake();
},
[this]() {
- deferred_invoke([this] {
+ GUI::Application::the()->event_loop().deferred_invoke([this] {
m_debug_info_widget->set_debug_actions_enabled(false);
if (m_current_editor_in_execution)
m_current_editor_in_execution->editor().clear_execution_position();
@@ -1089,7 +1089,7 @@ void HackStudioWidget::initialize_debugger()
HackStudioWidget::hide_action_tabs();
GUI::MessageBox::show(window(), "Program Exited"sv, "Debugger"sv, GUI::MessageBox::Type::Information);
});
- Core::EventLoop::wake_current();
+ GUI::Application::the()->event_loop().wake();
});
}