Index: base/platform_file_posix.cc |
diff --git a/base/platform_file_posix.cc b/base/platform_file_posix.cc |
index fa8fc6234bed42d150b493d7e46f6fb58cc49e39..94184ab3e6eef16f3f5eadea4f4ecf93118e9ac4 100644 |
--- a/base/platform_file_posix.cc |
+++ b/base/platform_file_posix.cc |
@@ -122,39 +122,8 @@ PlatformFile CreatePlatformFileUnsafe(const FilePath& name, |
if (error) { |
if (descriptor >= 0) |
*error = PLATFORM_FILE_OK; |
- else { |
- switch (errno) { |
- case EACCES: |
- case EISDIR: |
- case EROFS: |
- case EPERM: |
- *error = PLATFORM_FILE_ERROR_ACCESS_DENIED; |
- break; |
- case ETXTBSY: |
- *error = PLATFORM_FILE_ERROR_IN_USE; |
- break; |
- case EEXIST: |
- *error = PLATFORM_FILE_ERROR_EXISTS; |
- break; |
- case ENOENT: |
- *error = PLATFORM_FILE_ERROR_NOT_FOUND; |
- break; |
- case EMFILE: |
- *error = PLATFORM_FILE_ERROR_TOO_MANY_OPENED; |
- break; |
- case ENOMEM: |
- *error = PLATFORM_FILE_ERROR_NO_MEMORY; |
- break; |
- case ENOSPC: |
- *error = PLATFORM_FILE_ERROR_NO_SPACE; |
- break; |
- case ENOTDIR: |
- *error = PLATFORM_FILE_ERROR_NOT_A_DIRECTORY; |
- break; |
- default: |
- *error = PLATFORM_FILE_ERROR_FAILED; |
- } |
- } |
+ else |
+ *error = ErrnoToPlatformFileError(errno); |
} |
return descriptor; |
@@ -335,4 +304,30 @@ bool GetPlatformFileInfo(PlatformFile file, PlatformFileInfo* info) { |
return true; |
} |
+PlatformFileError ErrnoToPlatformFileError(int saved_errno) { |
+ switch (saved_errno) { |
+ case EACCES: |
+ case EISDIR: |
+ case EROFS: |
+ case EPERM: |
+ return PLATFORM_FILE_ERROR_ACCESS_DENIED; |
+ case ETXTBSY: |
+ return PLATFORM_FILE_ERROR_IN_USE; |
+ case EEXIST: |
+ return PLATFORM_FILE_ERROR_EXISTS; |
+ case ENOENT: |
+ return PLATFORM_FILE_ERROR_NOT_FOUND; |
+ case EMFILE: |
+ return PLATFORM_FILE_ERROR_TOO_MANY_OPENED; |
+ case ENOMEM: |
+ return PLATFORM_FILE_ERROR_NO_MEMORY; |
+ case ENOSPC: |
+ return PLATFORM_FILE_ERROR_NO_SPACE; |
+ case ENOTDIR: |
+ return PLATFORM_FILE_ERROR_NOT_A_DIRECTORY; |
+ default: |
+ return PLATFORM_FILE_ERROR_FAILED; |
+ } |
+} |
+ |
} // namespace base |