Revert "Revert "Fix instrumentation frame check with inlining""
This reverts commit e3e2fe5ecc16184ba91018adb3bfbec1c5880c29.
Fixes an incorrect CHECK_GT into CHECK_GE in method
Instrumentation::ComputeFrameId.
Bug: 22519499
Change-Id: I0a11d378f3baa728b9176ff086fe4b835b30bb46
diff --git a/runtime/instrumentation.cc b/runtime/instrumentation.cc
index deada4c..955a8c3 100644
--- a/runtime/instrumentation.cc
+++ b/runtime/instrumentation.cc
@@ -960,6 +960,15 @@
}
}
+// Computes a frame ID by ignoring inlined frames.
+size_t Instrumentation::ComputeFrameId(Thread* self,
+ size_t frame_depth,
+ size_t inlined_frames_before_frame) {
+ CHECK_GE(frame_depth, inlined_frames_before_frame);
+ size_t no_inline_depth = frame_depth - inlined_frames_before_frame;
+ return StackVisitor::ComputeNumFrames(self, kInstrumentationStackWalk) - no_inline_depth;
+}
+
static void CheckStackDepth(Thread* self, const InstrumentationStackFrame& instrumentation_frame,
int delta)
SHARED_REQUIRES(Locks::mutator_lock_) {