diff options
Diffstat (limited to 'openjdkjvmti/ti_heap.cc')
-rw-r--r-- | openjdkjvmti/ti_heap.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/openjdkjvmti/ti_heap.cc b/openjdkjvmti/ti_heap.cc index 0c06ae1169..81d1fc778f 100644 --- a/openjdkjvmti/ti_heap.cc +++ b/openjdkjvmti/ti_heap.cc @@ -1039,7 +1039,9 @@ class FollowReferencesHelper final { } auto& java_info = static_cast<const art::JavaFrameRootInfo&>(info); - ref_info->stack_local.slot = static_cast<jint>(java_info.GetVReg()); + size_t vreg = java_info.GetVReg(); + ref_info->stack_local.slot = static_cast<jint>( + vreg <= art::JavaFrameRootInfo::kMaxVReg ? vreg : -1); const art::StackVisitor* visitor = java_info.GetVisitor(); ref_info->stack_local.location = static_cast<jlocation>(visitor->GetDexPc(/* abort_on_failure= */ false)); |