INT_MAX nanoseconds is not very long
Bug: 25843358
If the time between last swap & current vsync grew larger
than 2 seconds it would overflow when placed into an int, causing
frames to be dropped as negative numbers are definitely
less than 2_ms.
Change-Id: Icd2136989e5bbf5a0e21611b95a4d515b5ff9b14
diff --git a/libs/hwui/renderthread/CanvasContext.cpp b/libs/hwui/renderthread/CanvasContext.cpp
index 89cadea..ca85dfb 100644
--- a/libs/hwui/renderthread/CanvasContext.cpp
+++ b/libs/hwui/renderthread/CanvasContext.cpp
@@ -237,7 +237,7 @@
if (CC_LIKELY(mSwapHistory.size())) {
nsecs_t latestVsync = mRenderThread.timeLord().latestVsync();
const SwapHistory& lastSwap = mSwapHistory.back();
- int vsyncDelta = std::abs(lastSwap.vsyncTime - latestVsync);
+ nsecs_t vsyncDelta = std::abs(lastSwap.vsyncTime - latestVsync);
// The slight fudge-factor is to deal with cases where
// the vsync was estimated due to being slow handling the signal.
// See the logic in TimeLord#computeFrameTimeNanos or in