Add a new base class, Frame. It is a pure virtual function which
defines a protocol that all subclasses will implement. StackFrame
is currently the only subclass and the methods that Frame vends are
nearly identical to StackFrame's old methods.
Update all callers to use Frame*/Frame& instead of pointers to
StackFrames.
This is almost entirely a mechanical change that touches a lot of
the code base so I'm committing it alone. No new functionality is
added with this patch, no new subclasses of Frame exist yet.
I'll probably need to tweak some of the separation, possibly moving
some of StackFrame's methods up in to Frame, but this is a good
starting point.
<rdar://problem/15314068>
llvm-svn: 193907
diff --git a/lldb/source/Core/Debugger.cpp b/lldb/source/Core/Debugger.cpp
index 3941d82..ea947a6 100644
--- a/lldb/source/Core/Debugger.cpp
+++ b/lldb/source/Core/Debugger.cpp
@@ -1137,7 +1137,7 @@
}
static void
-TestPromptFormats (StackFrame *frame)
+TestPromptFormats (Frame *frame)
{
if (frame == NULL)
return;
@@ -1359,7 +1359,7 @@
static ValueObjectSP
ExpandIndexedExpression (ValueObject* valobj,
size_t index,
- StackFrame* frame,
+ Frame* frame,
bool deref_pointer)
{
Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_TYPES));
@@ -2112,7 +2112,7 @@
{
if (exe_ctx)
{
- StackFrame *frame = exe_ctx->GetFramePtr();
+ Frame *frame = exe_ctx->GetFramePtr();
if (frame)
{
var_name_begin += ::strlen ("frame.");
@@ -2338,7 +2338,7 @@
}
else if (IsToken (var_name_begin, "pc-offset}"))
{
- StackFrame *frame = exe_ctx->GetFramePtr();
+ Frame *frame = exe_ctx->GetFramePtr();
var_success = frame != NULL;
if (var_success)
{
@@ -2397,7 +2397,7 @@
// If format addr is valid, then we need to print an address
if (reg_num != LLDB_INVALID_REGNUM)
{
- StackFrame *frame = exe_ctx->GetFramePtr();
+ Frame *frame = exe_ctx->GetFramePtr();
// We have a register value to display...
if (reg_num == LLDB_REGNUM_GENERIC_PC && reg_kind == eRegisterKindGeneric)
{