From 36bcdb535e14a8a2e2c8643fb577569f7a2b6aed Mon Sep 17 00:00:00 2001 From: Svetoslav Ganov Date: Thu, 1 Dec 2011 11:48:21 -0800 Subject: Fix memory leaks in the accessibility layer. The AccessibilityServiceConnection chache should be shared between all interrogating threads. bug:5664337 Change-Id: I151041d0b358e87ac47ea5c1c258f90a8b252420 --- .../accessibility/AccessibilityInteractionClient.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/core/java/android/view/accessibility/AccessibilityInteractionClient.java b/core/java/android/view/accessibility/AccessibilityInteractionClient.java index 00a7c878b23d..96653e5dd632 100644 --- a/core/java/android/view/accessibility/AccessibilityInteractionClient.java +++ b/core/java/android/view/accessibility/AccessibilityInteractionClient.java @@ -91,7 +91,8 @@ public final class AccessibilityInteractionClient private final Rect mTempBounds = new Rect(); - private final SparseArray mConnectionCache = + // The connection cache is shared between all interrogating threads. + private static final SparseArray sConnectionCache = new SparseArray(); /** @@ -517,8 +518,8 @@ public final class AccessibilityInteractionClient * @return The cached connection if such. */ public IAccessibilityServiceConnection getConnection(int connectionId) { - synchronized (mConnectionCache) { - return mConnectionCache.get(connectionId); + synchronized (sConnectionCache) { + return sConnectionCache.get(connectionId); } } @@ -529,8 +530,8 @@ public final class AccessibilityInteractionClient * @param connection The connection. */ public void addConnection(int connectionId, IAccessibilityServiceConnection connection) { - synchronized (mConnectionCache) { - mConnectionCache.put(connectionId, connection); + synchronized (sConnectionCache) { + sConnectionCache.put(connectionId, connection); } } @@ -540,8 +541,8 @@ public final class AccessibilityInteractionClient * @param connectionId The connection id. */ public void removeConnection(int connectionId) { - synchronized (mConnectionCache) { - mConnectionCache.remove(connectionId); + synchronized (sConnectionCache) { + sConnectionCache.remove(connectionId); } } } -- cgit v1.2.3-59-g8ed1b