Fix problems in src/base:
- de-facto ignored return value of PathService::Get in base_paths_mac.mm
- missing EINTR handling in other files
I was just reading the code looking for some issues.
BUG=none
Review URL: http://codereview.chromium.org/6820030
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81220 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/base/base_paths_mac.mm b/base/base_paths_mac.mm
index 12108341..ec1398b 100644
--- a/base/base_paths_mac.mm
+++ b/base/base_paths_mac.mm
@@ -53,19 +53,20 @@
return base::mac::GetUserDirectory(NSApplicationSupportDirectory, result);
case base::DIR_SOURCE_ROOT: {
// Go through PathService to catch overrides.
- if (PathService::Get(base::FILE_EXE, result)) {
- // Start with the executable's directory.
- *result = result->DirName();
- if (base::mac::AmIBundled()) {
- // The bundled app executables (Chromium, TestShell, etc) live five
- // levels down, eg:
- // src/xcodebuild/{Debug|Release}/Chromium.app/Contents/MacOS/Chromium
- *result = result->DirName().DirName().DirName().DirName().DirName();
- } else {
- // Unit tests execute two levels deep from the source root, eg:
- // src/xcodebuild/{Debug|Release}/base_unittests
- *result = result->DirName().DirName();
- }
+ if (!PathService::Get(base::FILE_EXE, result))
+ return false;
+
+ // Start with the executable's directory.
+ *result = result->DirName();
+ if (base::mac::AmIBundled()) {
+ // The bundled app executables (Chromium, TestShell, etc) live five
+ // levels down, eg:
+ // src/xcodebuild/{Debug|Release}/Chromium.app/Contents/MacOS/Chromium
+ *result = result->DirName().DirName().DirName().DirName().DirName();
+ } else {
+ // Unit tests execute two levels deep from the source root, eg:
+ // src/xcodebuild/{Debug|Release}/base_unittests
+ *result = result->DirName().DirName();
}
return true;
}