diff options
Diffstat (limited to 'lldb/source/Core/Debugger.cpp')
-rw-r--r-- | lldb/source/Core/Debugger.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lldb/source/Core/Debugger.cpp b/lldb/source/Core/Debugger.cpp index d4b9bf6c37c..304ee119198 100644 --- a/lldb/source/Core/Debugger.cpp +++ b/lldb/source/Core/Debugger.cpp @@ -633,11 +633,15 @@ DebuggerInstanceSettings::DebuggerInstanceSettings (UserSettingsController &owne m_prompt (), m_script_lang () { - if (name == NULL && live_instance) + // CopyInstanceSettings is a pure virtual function in InstanceSettings; it therefore cannot be called + // until the vtables for DebuggerInstanceSettings 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); } } |