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

Unified Diff: content/browser/zygote_main_linux.cc

Issue 9447084: Refactor Pickle Read methods to use higher performance PickleIterator. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: compile (racing with incoming CLs) Created 8 years, 9 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/browser/zygote_main_linux.cc
diff --git a/content/browser/zygote_main_linux.cc b/content/browser/zygote_main_linux.cc
index c073cc7784752d4308b5619421b4fcf149f9644f..e1dbf1cbcd39d92be5c23ef7fc644e057c27a93e 100644
--- a/content/browser/zygote_main_linux.cc
+++ b/content/browser/zygote_main_linux.cc
@@ -169,7 +169,7 @@ class Zygote {
}
Pickle pickle(buf, len);
- void* iter = NULL;
+ PickleIterator iter(pickle);
int kind;
if (pickle.ReadInt(&iter, &kind)) {
@@ -204,7 +204,7 @@ class Zygote {
return false;
}
- void HandleReapRequest(int fd, const Pickle& pickle, void* iter) {
+ void HandleReapRequest(int fd, const Pickle& pickle, PickleIterator iter) {
base::ProcessId child;
base::ProcessId actual_child;
@@ -225,7 +225,9 @@ class Zygote {
base::EnsureProcessTerminated(actual_child);
}
- void HandleGetTerminationStatus(int fd, const Pickle& pickle, void* iter) {
+ void HandleGetTerminationStatus(int fd,
+ const Pickle& pickle,
+ PickleIterator iter) {
base::ProcessHandle child;
if (!pickle.ReadInt(&iter, &child)) {
@@ -347,7 +349,7 @@ class Zygote {
}
Pickle reply(reinterpret_cast<char*>(reply_buf), r);
- void* iter = NULL;
+ PickleIterator iter(reply);
if (!reply.ReadInt(&iter, &real_pid))
goto error;
if (real_pid <= 0) {
@@ -393,7 +395,7 @@ class Zygote {
// Returns -1 on error, otherwise returns twice, returning 0 to the child
// process and the child process ID to the parent process, like fork().
base::ProcessId ReadArgsAndFork(const Pickle& pickle,
- void* iter,
+ PickleIterator iter,
std::vector<int>& fds,
std::string* uma_name,
int* uma_sample,
@@ -486,7 +488,7 @@ class Zygote {
// otherwise writes the child_pid back to the browser via |fd|. Writes a
// child_pid of -1 on error.
bool HandleForkRequest(int fd, const Pickle& pickle,
- void* iter, std::vector<int>& fds) {
+ PickleIterator iter, std::vector<int>& fds) {
std::string uma_name;
int uma_sample;
int uma_boundary_value;
@@ -521,7 +523,9 @@ class Zygote {
return false;
}
- bool HandleGetSandboxStatus(int fd, const Pickle& pickle, void* iter) {
+ bool HandleGetSandboxStatus(int fd,
+ const Pickle& pickle,
+ PickleIterator iter) {
if (HANDLE_EINTR(write(fd, &sandbox_flags_, sizeof(sandbox_flags_)) !=
sizeof(sandbox_flags_))) {
PLOG(ERROR) << "write";
@@ -567,7 +571,7 @@ static void ProxyLocaltimeCallToBrowser(time_t input, struct tm* output,
}
Pickle reply(reinterpret_cast<char*>(reply_buf), r);
- void* iter = NULL;
+ PickleIterator iter(reply);
std::string result, timezone;
if (!reply.ReadString(&iter, &result) ||
!reply.ReadString(&iter, &timezone) ||
« no previous file with comments | « content/browser/zygote_host_impl_linux.cc ('k') | content/common/child_process_sandbox_support_impl_linux.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698