diff options
| -rw-r--r-- | core/java/android/app/usage/TimeSparseArray.java | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/core/java/android/app/usage/TimeSparseArray.java b/core/java/android/app/usage/TimeSparseArray.java index 5764fa85579c..9ef88e418161 100644 --- a/core/java/android/app/usage/TimeSparseArray.java +++ b/core/java/android/app/usage/TimeSparseArray.java @@ -81,12 +81,17 @@ public class TimeSparseArray<E> extends LongSparseArray<E> { @Override public void put(long key, E value) { final long origKey = key; - while (indexOfKey(key) >= 0) { - key++; - } - if (origKey != key) { - Slog.w(TAG, "Value " + value + " supposed to be inserted at " + origKey - + " displaced to " + key); + int keyIndex = indexOfKey(key); + if (keyIndex >= 0) { + final long sz = size(); + while (keyIndex < sz && keyAt(keyIndex) == key) { + key++; + keyIndex++; + } + if (key >= origKey + 10) { + Slog.w(TAG, "Value " + value + " supposed to be inserted at " + origKey + + " displaced to " + key); + } } super.put(key, value); } |