From b4931291848c229b913a49c2f85c2208d5882351 Mon Sep 17 00:00:00 2001 From: Sander Speetjens Date: Sat, 14 Feb 2026 12:34:23 +0100 Subject: [PATCH] b server / client unloading the lib when it contains a ui/sim crashes on windows --- client/mainwindow.cpp | 6 +++++- server/simulators.cpp | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/client/mainwindow.cpp b/client/mainwindow.cpp index 21bf820..21a6dfc 100644 --- a/client/mainwindow.cpp +++ b/client/mainwindow.cpp @@ -31,13 +31,17 @@ MainWindow::MainWindow(QUrl ws_url, QString sim, QWidget *parent) continue; } auto widget = loaded_ui(m_web_socket.get(), this); + if (widget == nullptr) + { + lib.unload(); + continue; + } m_sims.insert(std::make_pair(widget->name(), widget)); connect(widget, &UI_base::log_signal, this, [](const char *filename_in, int line_in, const char *funcname_in, int level, QString msg) { spdlog::default_logger_raw()->log(spdlog::source_loc{filename_in, line_in, funcname_in}, (spdlog::level::level_enum)level, msg.toStdString()); }); - lib.unload(); } // Insert debug sims here diff --git a/server/simulators.cpp b/server/simulators.cpp index 96b8f50..2b8b04a 100644 --- a/server/simulators.cpp +++ b/server/simulators.cpp @@ -66,8 +66,12 @@ Simulators::Simulators(uint16_t port, QStringList can_devs, QStringList uart_dev continue; } auto widget = loaded_sim(m_com, this); + if (widget == nullptr) + { + lib.unload(); + continue; + } m_simulators.insert(std::make_pair(widget->name(), widget)); - lib.unload(); } // Insert Debug sims here