Move SaveFrameZeroState and RestoreSaveFrameZero implementations to Thread base class
git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@132586 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Target/Thread.cpp b/source/Target/Thread.cpp
index 288694b..b1a3c15 100644
--- a/source/Target/Thread.cpp
+++ b/source/Target/Thread.cpp
@@ -1156,7 +1156,34 @@
source_lines_after);
}
+bool
+Thread::SaveFrameZeroState (RegisterCheckpoint &checkpoint)
+{
+ lldb::StackFrameSP frame_sp(GetStackFrameAtIndex (0));
+ if (frame_sp)
+ {
+ checkpoint.SetStackID(frame_sp->GetStackID());
+ return frame_sp->GetRegisterContext()->ReadAllRegisterValues (checkpoint.GetData());
+ }
+ return false;
+}
+bool
+Thread::RestoreSaveFrameZero (const RegisterCheckpoint &checkpoint)
+{
+ lldb::StackFrameSP frame_sp(GetStackFrameAtIndex (0));
+ if (frame_sp)
+ {
+ bool ret = frame_sp->GetRegisterContext()->WriteAllRegisterValues (checkpoint.GetData());
+
+ // Clear out all stack frames as our world just changed.
+ ClearStackFrames();
+ frame_sp->GetRegisterContext()->InvalidateIfNeeded(true);
+
+ return ret;
+ }
+ return false;
+}
#pragma mark "Thread::SettingsController"
//--------------------------------------------------------------