summaryrefslogtreecommitdiff
path: root/runtime/stack.cc
diff options
context:
space:
mode:
author Nicolas Geoffray <ngeoffray@google.com> 2016-07-04 10:15:47 +0100
committer Nicolas Geoffray <ngeoffray@google.com> 2016-07-04 16:40:51 +0100
commitc6df1e3cbfa7313007ee5fd4a5a6657a28627313 (patch)
tree13042081c7e5a784a90422c759e9b73e5cc9b013 /runtime/stack.cc
parent19c10147cd5f3270c8604d06c4a0e05cbc49e2f1 (diff)
Never go to resolution while inspecting inlined frames.
Instead, do a manual inspection and decoding of the invoke with the dex cache. Also update oatdump to dump types in the dex cache. bug:27858645 Change-Id: I7c0b612ee96e6865fa438c3a1d253686231337bd test:run-test
Diffstat (limited to 'runtime/stack.cc')
-rw-r--r--runtime/stack.cc17
1 files changed, 5 insertions, 12 deletions
diff --git a/runtime/stack.cc b/runtime/stack.cc
index a5ca527aa2..1d913f2222 100644
--- a/runtime/stack.cc
+++ b/runtime/stack.cc
@@ -131,16 +131,10 @@ ArtMethod* StackVisitor::GetMethod() const {
const OatQuickMethodHeader* method_header = GetCurrentOatQuickMethodHeader();
CodeInfoEncoding encoding = method_header->GetOptimizedCodeInfo().ExtractEncoding();
DCHECK(walk_kind_ != StackWalkKind::kSkipInlinedFrames);
- bool allow_resolve = walk_kind_ != StackWalkKind::kIncludeInlinedFramesNoResolve;
- return allow_resolve
- ? GetResolvedMethod<true>(*GetCurrentQuickFrame(),
- inline_info,
- encoding.inline_info_encoding,
- depth_in_stack_map)
- : GetResolvedMethod<false>(*GetCurrentQuickFrame(),
- inline_info,
- encoding.inline_info_encoding,
- depth_in_stack_map);
+ return GetResolvedMethod(*GetCurrentQuickFrame(),
+ inline_info,
+ encoding.inline_info_encoding,
+ depth_in_stack_map);
} else {
return *cur_quick_frame_;
}
@@ -791,8 +785,7 @@ void StackVisitor::WalkStack(bool include_transitions) {
cur_oat_quick_method_header_ = method->GetOatQuickMethodHeader(cur_quick_frame_pc_);
SanityCheckFrame();
- if ((walk_kind_ == StackWalkKind::kIncludeInlinedFrames ||
- walk_kind_ == StackWalkKind::kIncludeInlinedFramesNoResolve)
+ if ((walk_kind_ == StackWalkKind::kIncludeInlinedFrames)
&& (cur_oat_quick_method_header_ != nullptr)
&& cur_oat_quick_method_header_->IsOptimized()) {
CodeInfo code_info = cur_oat_quick_method_header_->GetOptimizedCodeInfo();