diff options
| author | Caroline Tice <ctice@apple.com> | 2010-09-09 18:26:37 +0000 |
|---|---|---|
| committer | Caroline Tice <ctice@apple.com> | 2010-09-09 18:26:37 +0000 |
| commit | f20e8239cddff27d9dc0cc2fcadf397879f15608 (patch) | |
| tree | f875e2873af86e9e7ed0174b26a63edd340e21b0 /lldb/source/Target/Process.cpp | |
| parent | 367a5df8cfca3822dcaf97efa1a9d47ebb6401a2 (diff) | |
| download | llvm-f20e8239cddff27d9dc0cc2fcadf397879f15608.tar.gz llvm-f20e8239cddff27d9dc0cc2fcadf397879f15608.tar.bz2 llvm-f20e8239cddff27d9dc0cc2fcadf397879f15608.zip | |
Add comments to InstanceSettings constructors explaining why they have
to be set up the way they are. Comment out code that removes pending
settings for live instances (after the settings are copied over).
llvm-svn: 113519
Diffstat (limited to 'lldb/source/Target/Process.cpp')
| -rw-r--r-- | lldb/source/Target/Process.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/lldb/source/Target/Process.cpp b/lldb/source/Target/Process.cpp index 565e78418814..1519e1f01f41 100644 --- a/lldb/source/Target/Process.cpp +++ b/lldb/source/Target/Process.cpp @@ -1974,7 +1974,7 @@ Process::ProcessSettingsController::CreateNewInstanceSettings (const char *insta ProcessInstanceSettings::ProcessInstanceSettings (UserSettingsController &owner, bool live_instance, const char *name) : - InstanceSettings (owner, (name == NULL ? CreateInstanceName().AsCString() : name), live_instance), + InstanceSettings (owner, (name == NULL ? CreateInstanceName().AsCString() : name), live_instance), m_run_args (), m_env_vars (), m_input_path (), @@ -1983,11 +1983,15 @@ ProcessInstanceSettings::ProcessInstanceSettings (UserSettingsController &owner, m_plugin (), m_disable_aslr (true) { - if (m_instance_name != InstanceSettings::GetDefaultName() && live_instance) + // CopyInstanceSettings is a pure virtual function in InstanceSettings; it therefore cannot be called + // until the vtables for ProcessInstanceSettings are properly set up, i.e. AFTER all the initializers. + // For this reason it has to be called here, rather than in the initializer or in the parent constructor. + + if (live_instance) { const lldb::InstanceSettingsSP &pending_settings = m_owner.FindPendingSettings (m_instance_name); CopyInstanceSettings (pending_settings,false); - m_owner.RemovePendingSettings (m_instance_name); + //m_owner.RemovePendingSettings (m_instance_name); } } |
