summaryrefslogtreecommitdiffstats
path: root/lldb/source/Target/Thread.cpp
diff options
context:
space:
mode:
authorJim Ingham <jingham@apple.com>2012-02-29 03:40:22 +0000
committerJim Ingham <jingham@apple.com>2012-02-29 03:40:22 +0000
commitb0c72a5f584de8334f0af10e48ba687fc6e8ae70 (patch)
tree981c2805d85d318478a95bd27c4f54b8e4666a5a /lldb/source/Target/Thread.cpp
parent7bc0ec3aad663a2c81fddf9da38dba46bba6be19 (diff)
downloadbcm5719-llvm-b0c72a5f584de8334f0af10e48ba687fc6e8ae70.tar.gz
bcm5719-llvm-b0c72a5f584de8334f0af10e48ba687fc6e8ae70.zip
Make the StackFrameList::GetFrameAtIndex only fetch as many stack frames as needed to
get the frame requested. <rdar://problem/10943135> llvm-svn: 151705
Diffstat (limited to 'lldb/source/Target/Thread.cpp')
-rw-r--r--lldb/source/Target/Thread.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/lldb/source/Target/Thread.cpp b/lldb/source/Target/Thread.cpp
index 0db727ed694..7a5e7f0e918 100644
--- a/lldb/source/Target/Thread.cpp
+++ b/lldb/source/Target/Thread.cpp
@@ -1069,7 +1069,10 @@ Thread::GetStackFrameList ()
void
Thread::ClearStackFrames ()
{
- if (m_curr_frames_sp && m_curr_frames_sp->GetNumFrames (false) > 1)
+ // Only store away the old "reference" StackFrameList if we got all its frames:
+ // FIXME: At some point we can try to splice in the frames we have fetched into
+ // the new frame as we make it, but let's not try that now.
+ if (m_curr_frames_sp && m_curr_frames_sp->GetAllFramesFetched())
m_prev_frames_sp.swap (m_curr_frames_sp);
m_curr_frames_sp.reset();
}
OpenPOWER on IntegriCloud