From cdaaeeec0dadbe38ed069da0eb4b1532cd620f3f Mon Sep 17 00:00:00 2001 From: Charles Tsai Date: Wed, 20 May 2015 18:16:48 +0800 Subject: Fix overflow/underflow problem in comparison Here's overflow/underflow problem in comparators. "when1 - when2" may suffer in overflow/underflow condition. Comparing them directly can avoid this problem. Change-Id: Id46af3db2adac90654210182d26ade1986ee0661 --- services/core/java/com/android/server/AlarmManagerService.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/services/core/java/com/android/server/AlarmManagerService.java b/services/core/java/com/android/server/AlarmManagerService.java index 8adfcc402275..fa906f7e4d58 100644 --- a/services/core/java/com/android/server/AlarmManagerService.java +++ b/services/core/java/com/android/server/AlarmManagerService.java @@ -369,10 +369,10 @@ class AlarmManagerService extends SystemService { public int compare(Batch b1, Batch b2) { long when1 = b1.start; long when2 = b2.start; - if (when1 - when2 > 0) { + if (when1 > when2) { return 1; } - if (when1 - when2 < 0) { + if (when1 < when2) { return -1; } return 0; @@ -1482,10 +1482,10 @@ class AlarmManagerService extends SystemService { public int compare(Alarm a1, Alarm a2) { long when1 = a1.whenElapsed; long when2 = a2.whenElapsed; - if (when1 - when2 > 0) { + if (when1 > when2) { return 1; } - if (when1 - when2 < 0) { + if (when1 < when2) { return -1; } return 0; -- cgit v1.2.3-59-g8ed1b