diff options
| author | 2011-12-01 11:48:21 -0800 | |
|---|---|---|
| committer | 2011-12-01 11:50:42 -0800 | |
| commit | 36bcdb535e14a8a2e2c8643fb577569f7a2b6aed (patch) | |
| tree | bd48e4b9dc2aaf83e3c124065595afacd71072f7 | |
| parent | d8ec8db5e0f227e4f63e948acb78d829f5ad30c8 (diff) | |
Fix memory leaks in the accessibility layer.
The AccessibilityServiceConnection chache should be shared
between all interrogating threads.
bug:5664337
Change-Id: I151041d0b358e87ac47ea5c1c258f90a8b252420
| -rw-r--r-- | core/java/android/view/accessibility/AccessibilityInteractionClient.java | 15 |
1 files 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<IAccessibilityServiceConnection> mConnectionCache = + // The connection cache is shared between all interrogating threads. + private static final SparseArray<IAccessibilityServiceConnection> sConnectionCache = new SparseArray<IAccessibilityServiceConnection>(); /** @@ -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); } } } |