diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2020-01-08 23:41:20 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2020-01-08 23:41:20 +0000 |
commit | 5f3537a700d1183ede89e215b0f1ac1b80f4ff3e (patch) | |
tree | d7be7125a302de8f8b0d609a7ba159180fd45ffa | |
parent | fd5495fc2c2e7609013554361699da69788a716f (diff) | |
parent | 4a33fdc4f2a94fdb90e60d8a1c7aa04fe92cc21f (diff) |
Merge "WifiNetworkFactory: Avoid unnecessary copy of incoming request"
-rw-r--r-- | service/java/com/android/server/wifi/WifiNetworkFactory.java | 2 | ||||
-rw-r--r-- | tests/wifitests/src/com/android/server/wifi/WifiNetworkFactoryTest.java | 40 |
2 files changed, 19 insertions, 23 deletions
diff --git a/service/java/com/android/server/wifi/WifiNetworkFactory.java b/service/java/com/android/server/wifi/WifiNetworkFactory.java index 27e0a142a..3d034076f 100644 --- a/service/java/com/android/server/wifi/WifiNetworkFactory.java +++ b/service/java/com/android/server/wifi/WifiNetworkFactory.java @@ -582,7 +582,7 @@ public class WifiNetworkFactory extends NetworkFactory { setupForActiveRequest(); // Store the active network request. - mActiveSpecificNetworkRequest = new NetworkRequest(networkRequest); + mActiveSpecificNetworkRequest = networkRequest; WifiNetworkSpecifier wns = (WifiNetworkSpecifier) ns; mActiveSpecificNetworkRequestSpecifier = new WifiNetworkSpecifier( wns.ssidPatternMatcher, wns.bssidPatternMatcher, wns.wifiConfiguration, diff --git a/tests/wifitests/src/com/android/server/wifi/WifiNetworkFactoryTest.java b/tests/wifitests/src/com/android/server/wifi/WifiNetworkFactoryTest.java index 8a8d52efe..9d7231398 100644 --- a/tests/wifitests/src/com/android/server/wifi/WifiNetworkFactoryTest.java +++ b/tests/wifitests/src/com/android/server/wifi/WifiNetworkFactoryTest.java @@ -1089,7 +1089,7 @@ public class WifiNetworkFactoryTest extends WifiBaseTest { assertNotNull(networkRequestUserSelectionCallback); // Now send another network request. - mWifiNetworkFactory.needNetworkFor(mNetworkRequest, 0); + mWifiNetworkFactory.needNetworkFor(new NetworkRequest(mNetworkRequest), 0); // Now trigger user selection to some network. WifiConfiguration selectedNetwork = WifiConfigurationTestUtil.createOpenNetwork(); @@ -1699,8 +1699,9 @@ public class WifiNetworkFactoryTest extends WifiBaseTest { // Send second request. WifiNetworkSpecifier specifier2 = createWifiNetworkSpecifier(TEST_UID_2, false); - mNetworkRequest.networkCapabilities.setNetworkSpecifier(specifier2); - mWifiNetworkFactory.needNetworkFor(mNetworkRequest, 0); + NetworkRequest newRequest = new NetworkRequest(mNetworkRequest); + newRequest.networkCapabilities.setNetworkSpecifier(specifier2); + mWifiNetworkFactory.needNetworkFor(newRequest, 0); mLooper.dispatchAll(); verify(mNetworkRequestMatchCallback).onAbort(); @@ -1709,15 +1710,13 @@ public class WifiNetworkFactoryTest extends WifiBaseTest { verifyUnfullfillableDispatched(mConnectivityMessenger); // Remove the stale request1 & ensure nothing happens. - mNetworkRequest.networkCapabilities.setNetworkSpecifier(specifier1); mWifiNetworkFactory.releaseNetworkFor(mNetworkRequest); verifyNoMoreInteractions(mWifiConnectivityManager, mWifiScanner, mClientModeImpl, mAlarmManager, mNetworkRequestMatchCallback); // Remove the active request2 & ensure auto-join is re-enabled. - mNetworkRequest.networkCapabilities.setNetworkSpecifier(specifier2); - mWifiNetworkFactory.releaseNetworkFor(mNetworkRequest); + mWifiNetworkFactory.releaseNetworkFor(newRequest); verify(mWifiConnectivityManager).setSpecificNetworkRequestInProgress(false); } @@ -1737,8 +1736,9 @@ public class WifiNetworkFactoryTest extends WifiBaseTest { // Send second request. WifiNetworkSpecifier specifier2 = createWifiNetworkSpecifier(TEST_UID_2, false); - mNetworkRequest.networkCapabilities.setNetworkSpecifier(specifier2); - mWifiNetworkFactory.needNetworkFor(mNetworkRequest, 0); + NetworkRequest newRequest = new NetworkRequest(mNetworkRequest); + newRequest.networkCapabilities.setNetworkSpecifier(specifier2); + mWifiNetworkFactory.needNetworkFor(newRequest, 0); // Ignore stale callbacks. WifiConfiguration selectedNetwork = WifiConfigurationTestUtil.createOpenNetwork(); @@ -1752,15 +1752,13 @@ public class WifiNetworkFactoryTest extends WifiBaseTest { verifyUnfullfillableDispatched(mConnectivityMessenger); // Remove the stale request1 & ensure nothing happens. - mNetworkRequest.networkCapabilities.setNetworkSpecifier(specifier1); mWifiNetworkFactory.releaseNetworkFor(mNetworkRequest); verifyNoMoreInteractions(mWifiConnectivityManager, mWifiScanner, mClientModeImpl, mAlarmManager, mNetworkRequestMatchCallback); // Remove the active request2 & ensure auto-join is re-enabled. - mNetworkRequest.networkCapabilities.setNetworkSpecifier(specifier2); - mWifiNetworkFactory.releaseNetworkFor(mNetworkRequest); + mWifiNetworkFactory.releaseNetworkFor(newRequest); verify(mWifiConnectivityManager).setSpecificNetworkRequestInProgress(false); } @@ -1776,8 +1774,9 @@ public class WifiNetworkFactoryTest extends WifiBaseTest { // Send second request. WifiNetworkSpecifier specifier2 = createWifiNetworkSpecifier(TEST_UID_2, false); - mNetworkRequest.networkCapabilities.setNetworkSpecifier(specifier2); - mWifiNetworkFactory.needNetworkFor(mNetworkRequest, 0); + NetworkRequest newRequest = new NetworkRequest(mNetworkRequest); + newRequest.networkCapabilities.setNetworkSpecifier(specifier2); + mWifiNetworkFactory.needNetworkFor(newRequest, 0); verify(mNetworkRequestMatchCallback).onAbort(); verify(mWifiConnectivityManager, times(1)).setSpecificNetworkRequestInProgress(true); @@ -1786,15 +1785,13 @@ public class WifiNetworkFactoryTest extends WifiBaseTest { verify(mAlarmManager).cancel(mConnectionTimeoutAlarmListenerArgumentCaptor.getValue()); // Remove the stale request1 & ensure nothing happens. - mNetworkRequest.networkCapabilities.setNetworkSpecifier(specifier1); mWifiNetworkFactory.releaseNetworkFor(mNetworkRequest); verifyNoMoreInteractions(mWifiConnectivityManager, mWifiScanner, mClientModeImpl, mAlarmManager, mNetworkRequestMatchCallback); // Remove the active request2 & ensure auto-join is re-enabled. - mNetworkRequest.networkCapabilities.setNetworkSpecifier(specifier2); - mWifiNetworkFactory.releaseNetworkFor(mNetworkRequest); + mWifiNetworkFactory.releaseNetworkFor(newRequest); verify(mWifiConnectivityManager).setSpecificNetworkRequestInProgress(false); } @@ -1817,8 +1814,9 @@ public class WifiNetworkFactoryTest extends WifiBaseTest { // Send second request. WifiNetworkSpecifier specifier2 = createWifiNetworkSpecifier(TEST_UID_2, false); - mNetworkRequest.networkCapabilities.setNetworkSpecifier(specifier2); - mWifiNetworkFactory.needNetworkFor(mNetworkRequest, 0); + NetworkRequest newRequest = new NetworkRequest(mNetworkRequest); + newRequest.networkCapabilities.setNetworkSpecifier(specifier2); + mWifiNetworkFactory.needNetworkFor(newRequest, 0); verify(mWifiConnectivityManager, times(1)).setSpecificNetworkRequestInProgress(true); verify(mWifiScanner, times(2)).getSingleScanResults(); @@ -1827,7 +1825,6 @@ public class WifiNetworkFactoryTest extends WifiBaseTest { verify(mClientModeImpl, times(1)).disconnectCommand(); // Remove the connected request1 & ensure we disconnect. - mNetworkRequest.networkCapabilities.setNetworkSpecifier(specifier1); mWifiNetworkFactory.releaseNetworkFor(mNetworkRequest); verify(mClientModeImpl, times(2)).disconnectCommand(); @@ -1835,8 +1832,7 @@ public class WifiNetworkFactoryTest extends WifiBaseTest { mAlarmManager); // Now remove the active request2 & ensure auto-join is re-enabled. - mNetworkRequest.networkCapabilities.setNetworkSpecifier(specifier2); - mWifiNetworkFactory.releaseNetworkFor(mNetworkRequest); + mWifiNetworkFactory.releaseNetworkFor(newRequest); verify(mWifiConnectivityManager).setSpecificNetworkRequestInProgress(false); @@ -2738,7 +2734,7 @@ public class WifiNetworkFactoryTest extends WifiBaseTest { TEST_PACKAGE_NAME_1); mNetworkRequest.networkCapabilities.setNetworkSpecifier(specifier); - mWifiNetworkFactory.needNetworkFor(mNetworkRequest, 0); + mWifiNetworkFactory.needNetworkFor(new NetworkRequest(mNetworkRequest), 0); validateUiStartParams(true); |