Index: net/tools/dump_cache/dump_cache.cc |
diff --git a/net/tools/dump_cache/dump_cache.cc b/net/tools/dump_cache/dump_cache.cc |
index ee5a50efe6e63e3e32181f7e42d3dcd990d72460..59b85f810bc601601c152d7b98db56a1fcd35e51 100644 |
--- a/net/tools/dump_cache/dump_cache.cc |
+++ b/net/tools/dump_cache/dump_cache.cc |
@@ -71,35 +71,25 @@ int Help() { |
} |
// Starts a new process, to generate the files. |
-int LaunchSlave(const CommandLine& command_line, |
- const std::wstring& pipe_number, int version) { |
- // TODO(port): remove this string-munging hackery. |
- std::wstring hacked_command_line = command_line.command_line_string(); |
- const std::wstring old_exe(L"dump_cache"); |
- size_t to_remove = hacked_command_line.find(old_exe); |
- hacked_command_line.erase(to_remove, old_exe.size()); |
- |
+int LaunchSlave(CommandLine command_line, |
+ const std::wstring& pipe_number, |
+ int version) { |
bool do_upgrade = command_line.HasSwitch(kUpgrade); |
bool do_convert_to_text = command_line.HasSwitch(kDumpToFiles); |
- std::wstring new_program; |
- if (do_upgrade) |
- new_program = base::StringPrintf(L"%ls%d", L"dump_cache_", version); |
- else |
- new_program = base::StringPrintf(L"dump_cache"); |
- |
- hacked_command_line.insert(to_remove, new_program); |
- |
- CommandLine new_command_line = CommandLine::FromString(hacked_command_line); |
+ if (do_upgrade) { |
+ FilePath program(base::StringPrintf(L"%ls%d", L"dump_cache", version)); |
+ command_line.SetProgram(program); |
+ } |
if (do_upgrade || do_convert_to_text) |
- new_command_line.AppendSwitch(kSlave); |
+ command_line.AppendSwitch(kSlave); |
// TODO(evanm): remove needless usage of wstring from here and elsewhere. |
- new_command_line.AppendSwitchASCII(kPipe, WideToASCII(pipe_number)); |
- if (!base::LaunchProcess(new_command_line, base::LaunchOptions(), NULL)) { |
+ command_line.AppendSwitchASCII(kPipe, WideToASCII(pipe_number)); |
+ if (!base::LaunchProcess(command_line, base::LaunchOptions(), NULL)) { |
printf("Unable to launch the needed version of this tool: %ls\n", |
- new_program.c_str()); |
+ command_line.GetProgram().value().c_str()); |
printf(kUpgradeHelp); |
return TOOL_NOT_FOUND; |
} |