From ea2d1e7e9d171d1d5f57450a6fdbcf15c92ab338 Mon Sep 17 00:00:00 2001 From: WarmUpTill <19472752+WarmUpTill@users.noreply.github.com> Date: Thu, 28 May 2026 22:00:22 +0200 Subject: [PATCH] Fix crash when importing macros is slow Probably not a real issue. Noticed during debug of another problem. --- lib/macro/macro-tab.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/lib/macro/macro-tab.cpp b/lib/macro/macro-tab.cpp index 8c43ebe8..c373e25a 100644 --- a/lib/macro/macro-tab.cpp +++ b/lib/macro/macro-tab.cpp @@ -395,7 +395,7 @@ void AdvSceneSwitcher::ImportMacros() std::vector> importedMacros; auto &tempMacros = GetTemporaryMacros(); - auto lock = LockContext(); + std::unique_lock lock(*GetMutex()); for (size_t i = 0; i < count; i++) { tempMacros.clear(); @@ -405,10 +405,14 @@ void AdvSceneSwitcher::ImportMacros() macro->Load(array_obj); RunAndClearPostLoadSteps(); - if (macroNameExists(macro->Name()) && - !ResolveMacroImportNameConflict(macro)) { - groupSize--; - continue; + if (macroNameExists(macro->Name())) { + lock.unlock(); + bool resolved = ResolveMacroImportNameConflict(macro); + lock.lock(); + if (!resolved) { + groupSize--; + continue; + } } importedMacros.emplace_back(macro);