summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2019-08-21 20:49:25 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2019-08-21 20:49:25 +0000
commitdd32e3c0a834bb781d6bd9cc3f8399b680847b8a (patch)
treeea51d54bce51a9468110f6f62df313b049fced93
parent86b6cd49d74749c538979b3972f24181e6762a5f (diff)
parentc2370735c4c62947da1d8065be0d93e9a2a9b654 (diff)
Merge "Avoid using sListeners outside of synchronized block."
-rw-r--r--core/java/android/provider/DeviceConfig.java15
1 files changed, 5 insertions, 10 deletions
diff --git a/core/java/android/provider/DeviceConfig.java b/core/java/android/provider/DeviceConfig.java
index 4f7c8c5d87e2..bc03e51bd63e 100644
--- a/core/java/android/provider/DeviceConfig.java
+++ b/core/java/android/provider/DeviceConfig.java
@@ -706,16 +706,11 @@ public final class DeviceConfig {
synchronized (sLock) {
for (int i = 0; i < sListeners.size(); i++) {
if (namespace.equals(sListeners.valueAt(i).first)) {
- final int j = i;
- sListeners.valueAt(i).second.execute(new Runnable() {
- @Override
- public void run() {
- Map<String, String> propertyMap = new HashMap(1);
- propertyMap.put(name, value);
- sListeners.keyAt(j)
- .onPropertiesChanged(new Properties(namespace, propertyMap));
- }
-
+ final OnPropertiesChangedListener listener = sListeners.keyAt(i);
+ sListeners.valueAt(i).second.execute(() -> {
+ Map<String, String> propertyMap = new ArrayMap<>(1);
+ propertyMap.put(name, value);
+ listener.onPropertiesChanged(new Properties(namespace, propertyMap));
});
}
}