mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-07-15 07:44:10 +00:00
UI: Remove OBSContext class and shutdown in run_program
The OBSContext never called obs_startup but would always call obs_shutdown in its destructor, resulting in shutdown calls even if libobs wasn't initialized (eg due to a startup error). Instead, we now track if libobs was initialized in OBSApp and call shutdown in the destructor.
This commit is contained in:
parent
f9801c933e
commit
06321f89e1
|
@ -1131,6 +1131,9 @@ OBSApp::~OBSApp()
|
|||
|
||||
os_inhibit_sleep_set_active(sleepInhibitor, false);
|
||||
os_inhibit_sleep_destroy(sleepInhibitor);
|
||||
|
||||
if (libobs_initialized)
|
||||
obs_shutdown();
|
||||
}
|
||||
|
||||
static void move_basic_to_profiles(void)
|
||||
|
@ -1352,6 +1355,8 @@ bool OBSApp::OBSInit()
|
|||
if (!StartupOBS(locale.c_str(), GetProfilerNameStore()))
|
||||
return false;
|
||||
|
||||
libobs_initialized = true;
|
||||
|
||||
obs_set_ui_task_handler(ui_task_handler);
|
||||
|
||||
#ifdef _WIN32
|
||||
|
|
|
@ -72,10 +72,11 @@ private:
|
|||
std::string theme;
|
||||
ConfigFile globalConfig;
|
||||
TextLookup textLookup;
|
||||
OBSContext obsContext;
|
||||
QPointer<OBSMainWindow> mainWindow;
|
||||
profiler_name_store_t *profilerNameStore = nullptr;
|
||||
|
||||
bool libobs_initialized = false;
|
||||
|
||||
os_inhibit_t *sleepInhibitor = nullptr;
|
||||
int sleepInhibitRefs = 0;
|
||||
|
||||
|
|
|
@ -266,16 +266,3 @@ public:
|
|||
return *this;
|
||||
}
|
||||
};
|
||||
|
||||
class OBSContext {
|
||||
public:
|
||||
inline OBSContext() {}
|
||||
inline OBSContext(const char *locale,
|
||||
const char *module_config_path = nullptr,
|
||||
profiler_name_store *store = nullptr)
|
||||
{
|
||||
obs_startup(locale, module_config_path, store);
|
||||
}
|
||||
|
||||
inline ~OBSContext() { obs_shutdown(); }
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue