From 83c7ac3b8e5faadb73313c73d401803d5d52f55f Mon Sep 17 00:00:00 2001 From: Adam Lesinski Date: Thu, 31 Oct 2013 17:59:18 -0700 Subject: [PATCH] Fix off-by-one issue when removing from Iterator MapCollections' iterator removes the preceding element which causes IndexOutOfBoundsExceptions to be thrown when removing the first element while iterating. bug:11477476 Change-Id: Ifc8fcf0ca1651e759f3b2ab8356404564e9f7d0b --- core/java/android/util/MapCollections.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/java/android/util/MapCollections.java b/core/java/android/util/MapCollections.java index f4a9b0bbb73e9..28b788b97aa7c 100644 --- a/core/java/android/util/MapCollections.java +++ b/core/java/android/util/MapCollections.java @@ -97,10 +97,10 @@ abstract class MapCollections { if (!mEntryValid) { throw new IllegalStateException(); } + colRemoveAt(mIndex); mIndex--; mEnd--; mEntryValid = false; - colRemoveAt(mIndex); } @Override