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