summaryrefslogtreecommitdiffstats
path: root/lldb/source/Target/Thread.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Target/Thread.cpp')
-rw-r--r--lldb/source/Target/Thread.cpp19
1 files changed, 8 insertions, 11 deletions
diff --git a/lldb/source/Target/Thread.cpp b/lldb/source/Target/Thread.cpp
index 5906d53e446..11d28acd78d 100644
--- a/lldb/source/Target/Thread.cpp
+++ b/lldb/source/Target/Thread.cpp
@@ -51,7 +51,8 @@ Thread::Thread (Process &process, lldb::tid_t tid) :
m_state_mutex (Mutex::eMutexTypeRecursive),
m_plan_stack (),
m_completed_plan_stack(),
- m_curr_frames_ap (),
+ m_curr_frames_sp (),
+ m_prev_frames_sp (),
m_resume_signal (LLDB_INVALID_SIGNAL_NUMBER),
m_resume_state (eStateRunning),
m_unwinder_ap (),
@@ -916,9 +917,9 @@ Thread::CalculateExecutionContext (ExecutionContext &exe_ctx)
StackFrameList &
Thread::GetStackFrameList ()
{
- if (m_curr_frames_ap.get() == NULL)
- m_curr_frames_ap.reset (new StackFrameList (*this, m_prev_frames_sp, true));
- return *m_curr_frames_ap;
+ if (!m_curr_frames_sp)
+ m_curr_frames_sp.reset (new StackFrameList (*this, m_prev_frames_sp, true));
+ return *m_curr_frames_sp;
}
@@ -933,13 +934,9 @@ Thread::GetStackFrameCount()
void
Thread::ClearStackFrames ()
{
- if (m_curr_frames_ap.get() && m_curr_frames_ap->GetNumFrames (false) > 1)
- m_prev_frames_sp.reset (m_curr_frames_ap.release());
- else
- m_curr_frames_ap.release();
-
-// StackFrameList::Merge (m_curr_frames_ap, m_prev_frames_sp);
-// assert (m_curr_frames_ap.get() == NULL);
+ if (m_curr_frames_sp && m_curr_frames_sp->GetNumFrames (false) > 1)
+ m_prev_frames_sp.swap (m_curr_frames_sp);
+ m_curr_frames_sp.reset();
}
lldb::StackFrameSP
OpenPOWER on IntegriCloud