Index: base/file_util_posix.cc |
diff --git a/base/file_util_posix.cc b/base/file_util_posix.cc |
index c7014b637718ce7333c4bebd3b63192fed4a5dea..60446d0193ab932323dacfd26747a1bad8bcfaef 100644 |
--- a/base/file_util_posix.cc |
+++ b/base/file_util_posix.cc |
@@ -59,6 +59,19 @@ |
#endif |
using base::FilePath; |
+using base::MakeAbsoluteFilePath; |
+ |
+namespace base { |
+ |
+FilePath MakeAbsoluteFilePath(const FilePath& input) { |
+ base::ThreadRestrictions::AssertIOAllowed(); |
+ char full_path[PATH_MAX]; |
+ if (realpath(input.value().c_str(), full_path) == NULL) |
+ return FilePath(); |
+ return FilePath(full_path); |
+} |
+ |
+} // namespace base |
namespace file_util { |
@@ -150,15 +163,6 @@ static std::string TempFileName() { |
#endif |
} |
-bool AbsolutePath(FilePath* path) { |
- base::ThreadRestrictions::AssertIOAllowed(); // For realpath(). |
- char full_path[PATH_MAX]; |
- if (realpath(path->value().c_str(), full_path) == NULL) |
- return false; |
- *path = FilePath(full_path); |
- return true; |
-} |
- |
int CountFilesCreatedAfter(const FilePath& path, |
const base::Time& comparison_time) { |
base::ThreadRestrictions::AssertIOAllowed(); |
@@ -301,15 +305,16 @@ bool CopyDirectory(const FilePath& from_path, |
// This function does not properly handle destinations within the source |
FilePath real_to_path = to_path; |
if (PathExists(real_to_path)) { |
- if (!AbsolutePath(&real_to_path)) |
+ real_to_path = MakeAbsoluteFilePath(real_to_path); |
+ if (real_to_path.empty()) |
return false; |
} else { |
- real_to_path = real_to_path.DirName(); |
- if (!AbsolutePath(&real_to_path)) |
+ real_to_path = MakeAbsoluteFilePath(real_to_path.DirName()); |
+ if (real_to_path.empty()) |
return false; |
} |
- FilePath real_from_path = from_path; |
- if (!AbsolutePath(&real_from_path)) |
+ FilePath real_from_path = MakeAbsoluteFilePath(from_path); |
+ if (real_from_path.empty()) |
return false; |
if (real_to_path.value().size() >= real_from_path.value().size() && |
real_to_path.value().compare(0, real_from_path.value().size(), |