diff options
| author | 2015-11-18 10:17:46 +0000 | |
|---|---|---|
| committer | 2015-11-18 10:17:46 +0000 | |
| commit | 3e1ff83fb210818df66b7a0a7bc70dca6c7b9d47 (patch) | |
| tree | ae736f4da42bd2d44514dffdffdc6bd3e6d32721 /runtime/stack.cc | |
| parent | cb6638ff664e3136ccfee3cffb9307e0d43ffbc1 (diff) | |
| parent | 09687447764a4d5d810df3d02532e4b141e7f2cd (diff) | |
Merge "Fix StackVisitor::GetVReg for reference in shadow frame"
Diffstat (limited to 'runtime/stack.cc')
| -rw-r--r-- | runtime/stack.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/runtime/stack.cc b/runtime/stack.cc index 88978bf240..593fde117b 100644 --- a/runtime/stack.cc +++ b/runtime/stack.cc @@ -265,7 +265,12 @@ bool StackVisitor::GetVReg(ArtMethod* m, uint16_t vreg, VRegKind kind, uint32_t* } } else { DCHECK(cur_shadow_frame_ != nullptr); - *val = cur_shadow_frame_->GetVReg(vreg); + if (kind == kReferenceVReg) { + *val = static_cast<uint32_t>(reinterpret_cast<uintptr_t>( + cur_shadow_frame_->GetVRegReference(vreg))); + } else { + *val = cur_shadow_frame_->GetVReg(vreg); + } return true; } } |