summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2017-02-28 17:59:59 +0000
committerZachary Turner <zturner@google.com>2017-02-28 17:59:59 +0000
commit8b3f2160d54468603dd298dcca9f6b70852c57c1 (patch)
treeff5b16e9ed4ceafe3de4fbec63393f67a56ecb69
parentd0b44fa788d1d6b66ef03130e24c536113c3ab97 (diff)
downloadbcm5719-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.cpp24
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();
}
OpenPOWER on IntegriCloud