diff options
Diffstat (limited to 'runtime/stack.cc')
| -rw-r--r-- | runtime/stack.cc | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/runtime/stack.cc b/runtime/stack.cc index 3fed7c9458..f9efc0b88f 100644 --- a/runtime/stack.cc +++ b/runtime/stack.cc @@ -618,6 +618,17 @@ std::string StackVisitor::DescribeLocation() const { return result; } +void StackVisitor::SetMethod(ArtMethod* method) { + DCHECK(GetMethod() != nullptr); + if (cur_shadow_frame_ != nullptr) { + cur_shadow_frame_->SetMethod(method); + } else { + DCHECK(cur_quick_frame_ != nullptr); + CHECK(!IsInInlinedFrame()) << "We do not support setting inlined method's ArtMethod!"; + *cur_quick_frame_ = method; + } +} + static void AssertPcIsWithinQuickCode(ArtMethod* method, uintptr_t pc) REQUIRES_SHARED(Locks::mutator_lock_) { if (method->IsNative() || method->IsRuntimeMethod() || method->IsProxyMethod()) { |