From 038c4d2b8783919de29e4bbb6d2e56410102c5fc Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Thu, 30 Oct 2025 20:22:30 +0000 Subject: [PATCH] Codechange: Make driver probe behave the same as loading by name. (#14736) Inconsistent initialisation order when setting active driver and starting the driver. --- src/driver.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/driver.cpp b/src/driver.cpp index 70e2071524..10b0f890b4 100644 --- a/src/driver.cpp +++ b/src/driver.cpp @@ -145,11 +145,12 @@ bool DriverFactoryBase::SelectDriverImpl(const std::string &name, Driver::Type t /* Keep old driver in case we need to switch back, or may still need to process an OS callback. */ auto oldd = std::move(GetActiveDriver(type)); - GetActiveDriver(type) = d->CreateInstance(); + auto newd = d->CreateInstance(); - auto err = GetActiveDriver(type)->Start({}); + auto err = newd->Start({}); if (!err) { Debug(driver, 1, "Successfully probed {} driver '{}'", GetDriverTypeName(type), d->name); + GetActiveDriver(type) = std::move(newd); return true; }