| 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;
 | 
|    }
 | 
| 
 |