diff options
Diffstat (limited to 'lldb/source/Target/Target.cpp')
-rw-r--r-- | lldb/source/Target/Target.cpp | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/lldb/source/Target/Target.cpp b/lldb/source/Target/Target.cpp index 5464b297392..da42e47c08d 100644 --- a/lldb/source/Target/Target.cpp +++ b/lldb/source/Target/Target.cpp @@ -769,26 +769,28 @@ Target::GetScratchClangASTContext() return m_scratch_ast_context_ap.get(); } -lldb::UserSettingsControllerSP -Target::GetSettingsController (bool finish) +void +Target::Initialize () { - static lldb::UserSettingsControllerSP g_settings_controller (new SettingsController); - static bool initialized = false; - - if (!initialized) - { - initialized = UserSettingsController::InitializeSettingsController (g_settings_controller, - Target::SettingsController::global_settings_table, - Target::SettingsController::instance_settings_table); - } + UserSettingsControllerSP &usc = GetSettingsController(); + usc.reset (new SettingsController); + UserSettingsController::InitializeSettingsController (usc, + SettingsController::global_settings_table, + SettingsController::instance_settings_table); +} - if (finish) - { - UserSettingsController::FinalizeSettingsController (g_settings_controller); - g_settings_controller.reset(); - initialized = false; - } +void +Target::Terminate () +{ + UserSettingsControllerSP &usc = GetSettingsController(); + UserSettingsController::FinalizeSettingsController (usc); + usc.reset(); +} +UserSettingsControllerSP & +Target::GetSettingsController () +{ + static UserSettingsControllerSP g_settings_controller; return g_settings_controller; } |