summaryrefslogtreecommitdiff
path: root/openjdkjvmti/ti_heap.cc
diff options
context:
space:
mode:
Diffstat (limited to 'openjdkjvmti/ti_heap.cc')
-rw-r--r--openjdkjvmti/ti_heap.cc4
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));