From ff95ffa216b74a19887ae0aafad5a5ea034cdd7b Mon Sep 17 00:00:00 2001 From: Mike Solar Date: Fri, 17 Jul 2026 18:28:38 +0800 Subject: [PATCH] fix: initialize default OCIO config on first use MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ColorManager::Init() (run by every Project construction) dereferenced GetDefaultConfig() unconditionally. Any Project created before SetUpDefaultConfig() crashed inside OCIO getCanonicalName on a null config — the Windows CI SEGFAULT, where the suite order runs a Project-creating test first. Reproduced locally by running MainWindowLayoutInfo.AccessorsStoreAndRetrieve as the first suite. --- app/node/color/colormanager/colormanager.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/node/color/colormanager/colormanager.cpp b/app/node/color/colormanager/colormanager.cpp index 010651374..b4f511012 100644 --- a/app/node/color/colormanager/colormanager.cpp +++ b/app/node/color/colormanager/colormanager.cpp @@ -68,6 +68,13 @@ QString ColorManager::GetConfigFilename() const OCIO::ConstConfigRcPtr ColorManager::GetDefaultConfig() { + // Set up on first use: Project construction calls ColorManager::Init() + // unconditionally, so without this any Project created before + // SetUpDefaultConfig() crashed dereferencing a null config. + if (!default_config_) { + SetUpDefaultConfig(); + } + return default_config_; }