summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Svetoslav Ganov <svetoslavganov@google.com> 2011-12-01 11:48:21 -0800
committer Svetoslav Ganov <svetoslavganov@google.com> 2011-12-01 11:50:42 -0800
commit36bcdb535e14a8a2e2c8643fb577569f7a2b6aed (patch)
treebd48e4b9dc2aaf83e3c124065595afacd71072f7
parentd8ec8db5e0f227e4f63e948acb78d829f5ad30c8 (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.java15
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);
}
}
}