Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/files/file.h" | 5 #include "base/files/file.h" |
| 6 #include "base/files/file_path.h" | 6 #include "base/files/file_path.h" |
| 7 #include "base/files/file_tracing.h" | 7 #include "base/files/file_tracing.h" |
| 8 #include "base/metrics/histogram.h" | 8 #include "base/metrics/histogram.h" |
| 9 #include "base/timer/elapsed_timer.h" | 9 #include "base/timer/elapsed_timer.h" |
| 10 #include "build/build_config.h" | 10 #include "build/build_config.h" |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 64 // static | 64 // static |
| 65 File File::CreateForAsyncHandle(PlatformFile platform_file) { | 65 File File::CreateForAsyncHandle(PlatformFile platform_file) { |
| 66 File file(platform_file); | 66 File file(platform_file); |
| 67 // It would be nice if we could validate that |platform_file| was opened with | 67 // It would be nice if we could validate that |platform_file| was opened with |
| 68 // FILE_FLAG_OVERLAPPED on Windows but this doesn't appear to be possible. | 68 // FILE_FLAG_OVERLAPPED on Windows but this doesn't appear to be possible. |
| 69 file.async_ = true; | 69 file.async_ = true; |
| 70 return file; | 70 return file; |
| 71 } | 71 } |
| 72 | 72 |
| 73 File& File::operator=(File&& other) { | 73 File& File::operator=(File&& other) { |
| 74 DCHECK_NE(this, &other); | |
| 75 Close(); | 74 Close(); |
|
danakj
2017/04/05 19:17:40
I don't understand how this wouldn't close the fil
| |
| 76 SetPlatformFile(other.TakePlatformFile()); | 75 SetPlatformFile(other.TakePlatformFile()); |
| 77 tracing_path_ = other.tracing_path_; | 76 tracing_path_ = other.tracing_path_; |
| 78 error_details_ = other.error_details(); | 77 error_details_ = other.error_details(); |
| 79 created_ = other.created(); | 78 created_ = other.created(); |
| 80 async_ = other.async_; | 79 async_ = other.async_; |
| 81 return *this; | 80 return *this; |
| 82 } | 81 } |
| 83 | 82 |
| 84 #if !defined(OS_NACL) | 83 #if !defined(OS_NACL) |
| 85 void File::Initialize(const FilePath& path, uint32_t flags) { | 84 void File::Initialize(const FilePath& path, uint32_t flags) { |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 132 return "FILE_ERROR_IO"; | 131 return "FILE_ERROR_IO"; |
| 133 case FILE_ERROR_MAX: | 132 case FILE_ERROR_MAX: |
| 134 break; | 133 break; |
| 135 } | 134 } |
| 136 | 135 |
| 137 NOTREACHED(); | 136 NOTREACHED(); |
| 138 return ""; | 137 return ""; |
| 139 } | 138 } |
| 140 | 139 |
| 141 } // namespace base | 140 } // namespace base |
| OLD | NEW |