mirror of https://github.com/OpenTTD/OpenTTD
(svn r26539) -Fix [FS#5994]: [Windows] Crash due to assuming (formerly) _video_driver is being set before the operating system has time to perform the first "paint" callback
parent
b476086c39
commit
05f7df39ce
|
@ -116,15 +116,18 @@ bool DriverFactoryBase::SelectDriverImpl(const char *name, Driver::Type type)
|
|||
if (d->type != type) continue;
|
||||
if (d->priority != priority) continue;
|
||||
|
||||
Driver *oldd = *GetActiveDriver(type);
|
||||
Driver *newd = d->CreateInstance();
|
||||
*GetActiveDriver(type) = newd;
|
||||
|
||||
const char *err = newd->Start(NULL);
|
||||
if (err == NULL) {
|
||||
DEBUG(driver, 1, "Successfully probed %s driver '%s'", GetDriverTypeName(type), d->name);
|
||||
delete *GetActiveDriver(type);
|
||||
*GetActiveDriver(type) = newd;
|
||||
delete oldd;
|
||||
return true;
|
||||
}
|
||||
|
||||
*GetActiveDriver(type) = oldd;
|
||||
DEBUG(driver, 1, "Probing %s driver '%s' failed with error: %s", GetDriverTypeName(type), d->name, err);
|
||||
delete newd;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue