summaryrefslogtreecommitdiffstats
path: root/lldb/source/Target/Process.cpp
diff options
context:
space:
mode:
authorCaroline Tice <ctice@apple.com>2011-03-10 22:14:10 +0000
committerCaroline Tice <ctice@apple.com>2011-03-10 22:14:10 +0000
commit20bd37f747e84c5702d96f08490e1ccb48ab8ce1 (patch)
tree267a00857860c043aaf581fbbc0d2dd0b5e5f4c7 /lldb/source/Target/Process.cpp
parent15bc34c7c215ff05a8c51a679ea19cb28cd91d1a (diff)
downloadbcm5719-llvm-20bd37f747e84c5702d96f08490e1ccb48ab8ce1.tar.gz
bcm5719-llvm-20bd37f747e84c5702d96f08490e1ccb48ab8ce1.zip
The UserSettings controllers must be initialized & terminated in the
correct order. Previously this was tacitly implemented but not enforced, so it was possible to accidentally do things in the wrong order and cause problems. This fixes that problem. llvm-svn: 127430
Diffstat (limited to 'lldb/source/Target/Process.cpp')
-rw-r--r--lldb/source/Target/Process.cpp18
1 files changed, 11 insertions, 7 deletions
diff --git a/lldb/source/Target/Process.cpp b/lldb/source/Target/Process.cpp
index f1fb3bb4d10..03fc98298a1 100644
--- a/lldb/source/Target/Process.cpp
+++ b/lldb/source/Target/Process.cpp
@@ -2671,7 +2671,7 @@ Process::PopProcessInputReader ()
// The process needs to know about installed plug-ins
void
-Process::DidInitialize ()
+Process::SettingsInitialize ()
{
static std::vector<lldb::OptionEnumValueElement> g_plugins;
@@ -2707,16 +2707,20 @@ Process::DidInitialize ()
UserSettingsController::InitializeSettingsController (usc,
SettingsController::global_settings_table,
SettingsController::instance_settings_table);
+
+ // Now call SettingsInitialize() for each 'child' of Process settings
+ Thread::SettingsInitialize ();
}
void
-Process::Initialize ()
-{
-}
-
-void
-Process::Terminate ()
+Process::SettingsTerminate ()
{
+ // Must call SettingsTerminate() on each 'child' of Process settings before terminating Process settings.
+
+ Thread::SettingsTerminate ();
+
+ // Now terminate Process Settings.
+
UserSettingsControllerSP &usc = GetSettingsController();
UserSettingsController::FinalizeSettingsController (usc);
usc.reset();
OpenPOWER on IntegriCloud