diff options
| author | 2015-05-20 18:16:48 +0800 | |
|---|---|---|
| committer | 2015-06-04 17:14:03 +0800 | |
| commit | cdaaeeec0dadbe38ed069da0eb4b1532cd620f3f (patch) | |
| tree | 5778386461e2372aaac331c76dfe8a67f44dfa19 | |
| parent | bf17375e5e6195122ee24295cf05f012822711ec (diff) | |
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
| -rw-r--r-- | services/core/java/com/android/server/AlarmManagerService.java | 8 |
1 files 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; |