Index: base/base_paths_linux.cc |
diff --git a/base/base_paths_linux.cc b/base/base_paths_linux.cc |
index abbc91e0a97439810633ff913773327dfc6973cc..d161114b99ae367c84166d8d997bd1b2e15ae4a7 100644 |
--- a/base/base_paths_linux.cc |
+++ b/base/base_paths_linux.cc |
@@ -6,6 +6,7 @@ |
#include <unistd.h> |
+#include "base/file_path.h" |
#include "base/file_util.h" |
#include "base/logging.h" |
#include "base/path_service.h" |
@@ -15,7 +16,7 @@ |
namespace base { |
bool PathProviderLinux(int key, std::wstring* result) { |
- std::wstring cur; |
+ FilePath path; |
switch (key) { |
case base::FILE_EXE: |
case base::FILE_MODULE: { // TODO(evanm): is this correct? |
@@ -32,10 +33,11 @@ bool PathProviderLinux(int key, std::wstring* result) { |
case base::DIR_SOURCE_ROOT: |
// On linux, unit tests execute two levels deep from the source root. |
// For example: chrome/{Debug|Hammer}/net_unittest |
- PathService::Get(base::DIR_EXE, &cur); |
- file_util::UpOneDirectory(&cur); |
- file_util::UpOneDirectory(&cur); |
- *result = cur; |
+ if (!PathService::Get(base::DIR_EXE, &path)) |
+ return false; |
+ path = path.Append(FilePath::kParentDirectory) |
+ .Append(FilePath::kParentDirectory); |
+ *result = path.ToWStringHack(); |
return true; |
} |
return false; |