Index: content/public/android/java/src/org/chromium/content/app/ChildProcessServiceImpl.java |
diff --git a/content/public/android/java/src/org/chromium/content/app/ChildProcessServiceImpl.java b/content/public/android/java/src/org/chromium/content/app/ChildProcessServiceImpl.java |
index e6a84437fbc0ea0786e6e44bf969f43803751509..af5014a2ba93069ed308f6a0617155e2d2b15f92 100644 |
--- a/content/public/android/java/src/org/chromium/content/app/ChildProcessServiceImpl.java |
+++ b/content/public/android/java/src/org/chromium/content/app/ChildProcessServiceImpl.java |
@@ -260,10 +260,19 @@ public class ChildProcessServiceImpl { |
mMainThread.wait(); |
} |
} |
- for (FileDescriptorInfo fdInfo : mFdInfos) { |
- nativeRegisterGlobalFileDescriptor( |
- fdInfo.mId, fdInfo.mFd.detachFd(), fdInfo.mOffset, fdInfo.mSize); |
+ |
+ int[] fileIds = new int[mFdInfos.length]; |
+ int[] fds = new int[mFdInfos.length]; |
+ long[] regionOffsets = new long[mFdInfos.length]; |
+ long[] regionSizes = new long[mFdInfos.length]; |
+ for (int i = 0; i < mFdInfos.length; i++) { |
+ FileDescriptorInfo fdInfo = mFdInfos[i]; |
+ fileIds[i] = fdInfo.mId; |
+ fds[i] = fdInfo.mFd.detachFd(); |
+ regionOffsets[i] = fdInfo.mOffset; |
+ regionSizes[i] = fdInfo.mSize; |
} |
+ nativeRegisterFileDescriptors(fileIds, fds, regionOffsets, regionSizes); |
nativeInitChildProcessImpl(ChildProcessServiceImpl.this, mCpuCount, |
mCpuFeatures); |
if (mActivitySemaphore.tryAcquire()) { |
@@ -401,12 +410,13 @@ public class ChildProcessServiceImpl { |
} |
/** |
- * Helper for registering FileDescriptorInfo objects with GlobalFileDescriptors. |
+ * Helper for registering FileDescriptorInfo objects with GlobalFileDescriptors or |
+ * FileDescriptorStore. |
* This includes the IPC channel, the crash dump signals and resource related |
* files. |
*/ |
- private static native void nativeRegisterGlobalFileDescriptor( |
- int id, int fd, long offset, long size); |
+ private static native void nativeRegisterFileDescriptors( |
+ int[] id, int[] fd, long[] offset, long[] size); |
/** |
* The main entry point for a child process. This should be called from a new thread since |