diff options
| author | 2019-08-21 20:49:25 +0000 | |
|---|---|---|
| committer | 2019-08-21 20:49:25 +0000 | |
| commit | dd32e3c0a834bb781d6bd9cc3f8399b680847b8a (patch) | |
| tree | ea51d54bce51a9468110f6f62df313b049fced93 | |
| parent | 86b6cd49d74749c538979b3972f24181e6762a5f (diff) | |
| parent | c2370735c4c62947da1d8065be0d93e9a2a9b654 (diff) | |
Merge "Avoid using sListeners outside of synchronized block."
| -rw-r--r-- | core/java/android/provider/DeviceConfig.java | 15 |
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)); }); } } |