diff options
author | Zachary Turner <zturner@google.com> | 2017-02-28 17:59:59 +0000 |
---|---|---|
committer | Zachary Turner <zturner@google.com> | 2017-02-28 17:59:59 +0000 |
commit | 8b3f2160d54468603dd298dcca9f6b70852c57c1 (patch) | |
tree | ff5b16e9ed4ceafe3de4fbec63393f67a56ecb69 | |
parent | d0b44fa788d1d6b66ef03130e24c536113c3ab97 (diff) | |
download | bcm5719-llvm-8b3f2160d54468603dd298dcca9f6b70852c57c1.tar.gz bcm5719-llvm-8b3f2160d54468603dd298dcca9f6b70852c57c1.zip |
Fix incorrect logic in StackFrame::Disassemble.
This had broken as the result of some previous cleanup.
llvm-svn: 296495
-rw-r--r-- | lldb/source/Target/StackFrame.cpp | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/lldb/source/Target/StackFrame.cpp b/lldb/source/Target/StackFrame.cpp index ec30fd62618..7ca8e8ea42a 100644 --- a/lldb/source/Target/StackFrame.cpp +++ b/lldb/source/Target/StackFrame.cpp @@ -221,18 +221,20 @@ bool StackFrame::ChangePC(addr_t pc) { const char *StackFrame::Disassemble() { std::lock_guard<std::recursive_mutex> guard(m_mutex); - if (m_disassembly.Empty()) - return nullptr; - - ExecutionContext exe_ctx(shared_from_this()); - Target *target = exe_ctx.GetTargetPtr(); - if (target) { - const char *plugin_name = nullptr; - const char *flavor = nullptr; - Disassembler::Disassemble(target->GetDebugger(), target->GetArchitecture(), - plugin_name, flavor, exe_ctx, 0, false, 0, 0, - m_disassembly); + if (m_disassembly.Empty()) { + ExecutionContext exe_ctx(shared_from_this()); + Target *target = exe_ctx.GetTargetPtr(); + if (target) { + const char *plugin_name = nullptr; + const char *flavor = nullptr; + Disassembler::Disassemble(target->GetDebugger(), + target->GetArchitecture(), plugin_name, flavor, + exe_ctx, 0, false, 0, 0, m_disassembly); + } + if (m_disassembly.Empty()) + return nullptr; } + return m_disassembly.GetData(); } |