Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(880)

Unified Diff: content/public/android/java/src/org/chromium/content/browser/ChildConnectionAllocator.java

Issue 2855323003: Removed the service number member from BaseChildProcessConnection. (Closed)
Patch Set: Minor clean-up Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/public/android/java/src/org/chromium/content/browser/ChildConnectionAllocator.java
diff --git a/content/public/android/java/src/org/chromium/content/browser/ChildConnectionAllocator.java b/content/public/android/java/src/org/chromium/content/browser/ChildConnectionAllocator.java
index 7e3e9db222d281aa43e2b9ac7679af1990edf1db..e5ce2438bc40c8432148e45ea72ce3a768f9751a 100644
--- a/content/public/android/java/src/org/chromium/content/browser/ChildConnectionAllocator.java
+++ b/content/public/android/java/src/org/chromium/content/browser/ChildConnectionAllocator.java
@@ -18,6 +18,7 @@ import org.chromium.content.app.PrivilegedProcessService;
import org.chromium.content.app.SandboxedProcessService;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map;
@@ -191,8 +192,9 @@ public class ChildConnectionAllocator {
}
int slot = mFreeConnectionIndices.remove(0);
assert mChildProcessConnections[slot] == null;
- mChildProcessConnections[slot] = mConnectionFactory.create(spawnData.getContext(), slot,
- mInSandbox, deathCallback, mChildClassName, childProcessCommonParameters,
+ String serviceClassName = mChildClassName + slot;
+ mChildProcessConnections[slot] = mConnectionFactory.create(spawnData.getContext(),
+ mInSandbox, deathCallback, serviceClassName, childProcessCommonParameters,
spawnData.getCreationParams());
Log.d(TAG, "Allocator allocated a connection, sandbox: %b, slot: %d", mInSandbox, slot);
return mChildProcessConnections[slot];
@@ -201,15 +203,11 @@ public class ChildConnectionAllocator {
// Also return the first ChildSpawnData in the pending queue, if any.
public ChildSpawnData free(BaseChildProcessConnection connection) {
assert LauncherThread.runningOnLauncherThread();
- int slot = connection.getServiceNumber();
- if (mChildProcessConnections[slot] != connection) {
- int occupier = mChildProcessConnections[slot] == null
- ? -1
- : mChildProcessConnections[slot].getServiceNumber();
- Log.e(TAG,
- "Unable to find connection to free in slot: %d "
- + "already occupied by service: %d",
- slot, occupier);
+ // mChildProcessConnections is relatively short (20 items at max at this point).
+ // We are better of iterating than caching in a map.
+ int slot = Arrays.asList(mChildProcessConnections).indexOf(connection);
+ if (slot == -1) {
+ Log.e(TAG, "Unable to find connection to free.");
assert false;
} else {
mChildProcessConnections[slot] = null;

Powered by Google App Engine
This is Rietveld 408576698