Merge pull request #14 from Atlante45/interface-backtrace

Don't run settings preroutine when not initialized
This commit is contained in:
Seth Alves 2018-01-29 12:34:21 -08:00 committed by GitHub
commit ae4aa41da4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 25 additions and 21 deletions

View file

@ -33,7 +33,6 @@ namespace Setting {
// tell the private instance to clean itself up on its thread
DependencyManager::destroy<Manager>();
//
globalManager.reset();
// quit the settings manager thread and wait on it to make sure it's gone
@ -42,6 +41,8 @@ namespace Setting {
}
void setupPrivateInstance() {
// Ensure Setting::init has already ran and qApp exists
if (qApp && globalManager) {
// Let's set up the settings Private instance on its own thread
QThread* thread = new QThread();
Q_CHECK_PTR(thread);
@ -57,6 +58,7 @@ namespace Setting {
// Register cleanupPrivateInstance to run inside QCoreApplication's destructor.
qAddPostRoutine(cleanupPrivateInstance);
}
}
FIXED_Q_COREAPP_STARTUP_FUNCTION(setupPrivateInstance)
// Sets up the settings private instance. Should only be run once at startup. preInit() must be run beforehand,
@ -79,6 +81,8 @@ namespace Setting {
}
globalManager = DependencyManager::set<Manager>();
setupPrivateInstance();
}
void Interface::init() {