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"
 //--------------------------------------------------------------