From 2c303b3f518b2ffdc4bf5f5cd2448d44115601ea Mon Sep 17 00:00:00 2001 From: Rachel Lee Date: Wed, 1 Jun 2022 15:24:05 -0700 Subject: [PATCH] Fix modulo div by 0 in Choreographer. Bug: 234483897 Test: atest ChoreographerTest Change-Id: I7d7766f6ea120109490d307e971a3da80a3d92ad --- core/java/android/view/Choreographer.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/java/android/view/Choreographer.java b/core/java/android/view/Choreographer.java index ebbe64c396e71..cc68ddd9e211f 100644 --- a/core/java/android/view/Choreographer.java +++ b/core/java/android/view/Choreographer.java @@ -765,10 +765,11 @@ public final class Choreographer { startNanos = System.nanoTime(); final long jitterNanos = startNanos - frameTimeNanos; if (jitterNanos >= frameIntervalNanos) { - final long lastFrameOffset = jitterNanos % frameIntervalNanos; + long lastFrameOffset = 0; if (frameIntervalNanos == 0) { Log.i(TAG, "Vsync data empty due to timeout"); } else { + lastFrameOffset = jitterNanos % frameIntervalNanos; final long skippedFrames = jitterNanos / frameIntervalNanos; if (skippedFrames >= SKIPPED_FRAME_WARNING_LIMIT) { Log.i(TAG, "Skipped " + skippedFrames + " frames! "