From 8b1c850c2e8b8782f00eec3f7b3e7d20ef40d031 Mon Sep 17 00:00:00 2001 From: Jesse Wilson Date: Mon, 12 Oct 2009 12:31:09 -0700 Subject: Fix memory corruption. --- .../main/java/java/util/concurrent/atomic/AtomicIntegerArray.java | 5 ++++- .../src/main/java/java/util/concurrent/atomic/AtomicLongArray.java | 5 ++++- .../main/java/java/util/concurrent/atomic/AtomicReferenceArray.java | 5 ++++- 3 files changed, 12 insertions(+), 3 deletions(-) (limited to 'concurrent/src/main/java') diff --git a/concurrent/src/main/java/java/util/concurrent/atomic/AtomicIntegerArray.java b/concurrent/src/main/java/java/util/concurrent/atomic/AtomicIntegerArray.java index ee21b13..312c76d 100644 --- a/concurrent/src/main/java/java/util/concurrent/atomic/AtomicIntegerArray.java +++ b/concurrent/src/main/java/java/util/concurrent/atomic/AtomicIntegerArray.java @@ -30,7 +30,10 @@ public class AtomicIntegerArray implements java.io.Serializable { private long rawIndex(int i) { if (i < 0 || i >= array.length) throw new IndexOutOfBoundsException("index " + i); - return base + i * scale; + // BEGIN android-changed + // avoid memory corruption + return base + (long) i * scale; + // END android-changed } /** diff --git a/concurrent/src/main/java/java/util/concurrent/atomic/AtomicLongArray.java b/concurrent/src/main/java/java/util/concurrent/atomic/AtomicLongArray.java index d96f4c2..187acbc 100644 --- a/concurrent/src/main/java/java/util/concurrent/atomic/AtomicLongArray.java +++ b/concurrent/src/main/java/java/util/concurrent/atomic/AtomicLongArray.java @@ -29,7 +29,10 @@ public class AtomicLongArray implements java.io.Serializable { private long rawIndex(int i) { if (i < 0 || i >= array.length) throw new IndexOutOfBoundsException("index " + i); - return base + i * scale; + // BEGIN android-changed + // avoid memory corruption + return base + (long) i * scale; + // END android-changed } /** diff --git a/concurrent/src/main/java/java/util/concurrent/atomic/AtomicReferenceArray.java b/concurrent/src/main/java/java/util/concurrent/atomic/AtomicReferenceArray.java index 9a484e6..fff6a1e 100644 --- a/concurrent/src/main/java/java/util/concurrent/atomic/AtomicReferenceArray.java +++ b/concurrent/src/main/java/java/util/concurrent/atomic/AtomicReferenceArray.java @@ -30,7 +30,10 @@ public class AtomicReferenceArray implements java.io.Serializable { private long rawIndex(int i) { if (i < 0 || i >= array.length) throw new IndexOutOfBoundsException("index " + i); - return base + i * scale; + // BEGIN android-changed + // avoid memory corruption + return base + (long) i * scale; + // END android-changed } /** -- cgit v1.1