From ab3b9fbfa0523e036ec71888d0da5dc55cd3301b Mon Sep 17 00:00:00 2001 From: Irfan Sheriff Date: Wed, 27 Feb 2013 11:06:45 -0800 Subject: Fix concurrency issues Make true copy of list when passing off on broadcast Bug: 8212369 Change-Id: Iaf4a303513d267f76bd16b845ec68baabfca6b45 --- wifi/java/android/net/wifi/p2p/WifiP2pDevice.java | 2 +- wifi/java/android/net/wifi/p2p/WifiP2pDeviceList.java | 4 ++-- wifi/java/android/net/wifi/p2p/WifiP2pService.java | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) (limited to 'wifi/java/android/net/wifi/p2p') diff --git a/wifi/java/android/net/wifi/p2p/WifiP2pDevice.java b/wifi/java/android/net/wifi/p2p/WifiP2pDevice.java index ad52585..7196c1b 100644 --- a/wifi/java/android/net/wifi/p2p/WifiP2pDevice.java +++ b/wifi/java/android/net/wifi/p2p/WifiP2pDevice.java @@ -335,7 +335,7 @@ public class WifiP2pDevice implements Parcelable { deviceCapability = source.deviceCapability; groupCapability = source.groupCapability; status = source.status; - wfdInfo = source.wfdInfo; + wfdInfo = new WifiP2pWfdInfo(source.wfdInfo); } } diff --git a/wifi/java/android/net/wifi/p2p/WifiP2pDeviceList.java b/wifi/java/android/net/wifi/p2p/WifiP2pDeviceList.java index 4f40ebc..0900351 100644 --- a/wifi/java/android/net/wifi/p2p/WifiP2pDeviceList.java +++ b/wifi/java/android/net/wifi/p2p/WifiP2pDeviceList.java @@ -44,7 +44,7 @@ public class WifiP2pDeviceList implements Parcelable { public WifiP2pDeviceList(WifiP2pDeviceList source) { if (source != null) { for (WifiP2pDevice d : source.getDeviceList()) { - mDevices.put(d.deviceAddress, d); + mDevices.put(d.deviceAddress, new WifiP2pDevice(d)); } } } @@ -53,7 +53,7 @@ public class WifiP2pDeviceList implements Parcelable { public WifiP2pDeviceList(ArrayList devices) { for (WifiP2pDevice device : devices) { if (device.deviceAddress != null) { - mDevices.put(device.deviceAddress, device); + mDevices.put(device.deviceAddress, new WifiP2pDevice(device)); } } } diff --git a/wifi/java/android/net/wifi/p2p/WifiP2pService.java b/wifi/java/android/net/wifi/p2p/WifiP2pService.java index 1589fec..4a489d5 100644 --- a/wifi/java/android/net/wifi/p2p/WifiP2pService.java +++ b/wifi/java/android/net/wifi/p2p/WifiP2pService.java @@ -1839,7 +1839,7 @@ public class WifiP2pService extends IWifiP2pManager.Stub { private void sendPeersChangedBroadcast() { final Intent intent = new Intent(WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION); - intent.putExtra(WifiP2pManager.EXTRA_P2P_DEVICE_LIST, mPeers); + intent.putExtra(WifiP2pManager.EXTRA_P2P_DEVICE_LIST, new WifiP2pDeviceList(mPeers)); intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT); mContext.sendBroadcastAsUser(intent, UserHandle.ALL); } -- cgit v1.1