Merge "Mitigating cache corruption in ArrayMap" into pi-dev
am: 841de8fb31
Change-Id: Ia8e5eddc8837af23c2fdcb48b40e98f1eff3bc8b
diff --git a/core/java/android/util/ArrayMap.java b/core/java/android/util/ArrayMap.java
index d51a13f..f1e937e 100644
--- a/core/java/android/util/ArrayMap.java
+++ b/core/java/android/util/ArrayMap.java
@@ -644,9 +644,11 @@
if (osize <= 1) {
// Now empty.
if (DEBUG) Log.d(TAG, "remove: shrink from " + mHashes.length + " to 0");
- freeArrays(mHashes, mArray, osize);
+ final int[] ohashes = mHashes;
+ final Object[] oarray = mArray;
mHashes = EmptyArray.INT;
mArray = EmptyArray.OBJECT;
+ freeArrays(ohashes, oarray, osize);
nsize = 0;
} else {
nsize = osize - 1;