Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(259)

Unified Diff: components/filesystem/file_impl.cc

Issue 1166763002: Reland "Mandoline filesystem: Build the filesystem on windows." (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: DWORD -> INT for real checking. (This was wrong.) Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/filesystem/directory_impl_unittest.cc ('k') | components/filesystem/file_impl_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/filesystem/file_impl.cc
diff --git a/components/filesystem/file_impl.cc b/components/filesystem/file_impl.cc
index c9d2637179b5c6123ae2126bd2cb0ad13e046c0e..f378432e724b8ca1226c76058ab315640c05fc3a 100644
--- a/components/filesystem/file_impl.cc
+++ b/components/filesystem/file_impl.cc
@@ -4,6 +4,7 @@
#include "components/filesystem/file_impl.h"
+#include <stdint.h>
#include <limits>
#include "base/files/file_path.h"
@@ -44,7 +45,7 @@ void FileImpl::Close(const CloseCallback& callback) {
}
file_.Close();
- callback.Run(ERROR_OK);
+ callback.Run(FILE_ERROR_OK);
}
// TODO(vtl): Move the implementation to a thread pool.
@@ -57,20 +58,20 @@ void FileImpl::Read(uint32_t num_bytes_to_read,
return;
}
if (num_bytes_to_read > kMaxReadSize) {
- callback.Run(ERROR_INVALID_OPERATION, mojo::Array<uint8_t>());
+ callback.Run(FILE_ERROR_INVALID_OPERATION, mojo::Array<uint8_t>());
return;
}
- if (Error error = IsOffsetValid(offset)) {
+ if (FileError error = IsOffsetValid(offset)) {
callback.Run(error, mojo::Array<uint8_t>());
return;
}
- if (Error error = IsWhenceValid(whence)) {
+ if (FileError error = IsWhenceValid(whence)) {
callback.Run(error, mojo::Array<uint8_t>());
return;
}
if (file_.Seek(static_cast<base::File::Whence>(whence), offset) == -1) {
- callback.Run(ERROR_FAILED, mojo::Array<uint8_t>());
+ callback.Run(FILE_ERROR_FAILED, mojo::Array<uint8_t>());
return;
}
@@ -78,13 +79,13 @@ void FileImpl::Read(uint32_t num_bytes_to_read,
int num_bytes_read = file_.ReadAtCurrentPos(
reinterpret_cast<char*>(&bytes_read.front()), num_bytes_to_read);
if (num_bytes_read < 0) {
- callback.Run(ERROR_FAILED, mojo::Array<uint8_t>());
+ callback.Run(FILE_ERROR_FAILED, mojo::Array<uint8_t>());
return;
}
DCHECK_LE(static_cast<size_t>(num_bytes_read), num_bytes_to_read);
bytes_read.resize(static_cast<size_t>(num_bytes_read));
- callback.Run(ERROR_OK, bytes_read.Pass());
+ callback.Run(FILE_ERROR_OK, bytes_read.Pass());
}
// TODO(vtl): Move the implementation to a thread pool.
@@ -100,36 +101,41 @@ void FileImpl::Write(mojo::Array<uint8_t> bytes_to_write,
// Who knows what |write()| would return if the size is that big (and it
// actually wrote that much).
if (bytes_to_write.size() >
+#if defined(OS_WIN)
+ std::numeric_limits<INT>::max()) {
+#else
static_cast<size_t>(std::numeric_limits<ssize_t>::max())) {
- callback.Run(ERROR_INVALID_OPERATION, 0);
+#endif
+ callback.Run(FILE_ERROR_INVALID_OPERATION, 0);
return;
}
- if (Error error = IsOffsetValid(offset)) {
+ if (FileError error = IsOffsetValid(offset)) {
callback.Run(error, 0);
return;
}
- if (Error error = IsWhenceValid(whence)) {
+ if (FileError error = IsWhenceValid(whence)) {
callback.Run(error, 0);
return;
}
if (file_.Seek(static_cast<base::File::Whence>(whence), offset) == -1) {
- callback.Run(ERROR_FAILED, 0);
+ callback.Run(FILE_ERROR_FAILED, 0);
return;
}
const char* buf = (bytes_to_write.size() > 0)
? reinterpret_cast<char*>(&bytes_to_write.front())
: nullptr;
- int num_bytes_written = file_.WriteAtCurrentPos(buf, bytes_to_write.size());
+ int num_bytes_written = file_.WriteAtCurrentPos(
+ buf, static_cast<int>(bytes_to_write.size()));
if (num_bytes_written < 0) {
- callback.Run(ERROR_FAILED, 0);
+ callback.Run(FILE_ERROR_FAILED, 0);
return;
}
DCHECK_LE(static_cast<size_t>(num_bytes_written),
std::numeric_limits<uint32_t>::max());
- callback.Run(ERROR_OK, static_cast<uint32_t>(num_bytes_written));
+ callback.Run(FILE_ERROR_OK, static_cast<uint32_t>(num_bytes_written));
}
void FileImpl::Tell(const TellCallback& callback) {
@@ -143,22 +149,22 @@ void FileImpl::Seek(int64_t offset,
callback.Run(GetError(file_), 0);
return;
}
- if (Error error = IsOffsetValid(offset)) {
+ if (FileError error = IsOffsetValid(offset)) {
callback.Run(error, 0);
return;
}
- if (Error error = IsWhenceValid(whence)) {
+ if (FileError error = IsWhenceValid(whence)) {
callback.Run(error, 0);
return;
}
int64 position = file_.Seek(static_cast<base::File::Whence>(whence), offset);
if (position < 0) {
- callback.Run(ERROR_FAILED, 0);
+ callback.Run(FILE_ERROR_FAILED, 0);
return;
}
- callback.Run(ERROR_OK, static_cast<int64>(position));
+ callback.Run(FILE_ERROR_OK, static_cast<int64>(position));
}
void FileImpl::Stat(const StatCallback& callback) {
@@ -169,11 +175,11 @@ void FileImpl::Stat(const StatCallback& callback) {
base::File::Info info;
if (!file_.GetInfo(&info)) {
- callback.Run(ERROR_FAILED, nullptr);
+ callback.Run(FILE_ERROR_FAILED, nullptr);
return;
}
- callback.Run(ERROR_OK, MakeFileInformation(info).Pass());
+ callback.Run(FILE_ERROR_OK, MakeFileInformation(info).Pass());
}
void FileImpl::Truncate(int64_t size, const TruncateCallback& callback) {
@@ -182,20 +188,20 @@ void FileImpl::Truncate(int64_t size, const TruncateCallback& callback) {
return;
}
if (size < 0) {
- callback.Run(ERROR_INVALID_OPERATION);
+ callback.Run(FILE_ERROR_INVALID_OPERATION);
return;
}
- if (Error error = IsOffsetValid(size)) {
+ if (FileError error = IsOffsetValid(size)) {
callback.Run(error);
return;
}
if (!file_.SetLength(size)) {
- callback.Run(ERROR_NOT_FOUND);
+ callback.Run(FILE_ERROR_NOT_FOUND);
return;
}
- callback.Run(ERROR_OK);
+ callback.Run(FILE_ERROR_OK);
}
void FileImpl::Touch(TimespecOrNowPtr atime,
@@ -210,7 +216,7 @@ void FileImpl::Touch(TimespecOrNowPtr atime,
if (!atime) {
base::File::Info info;
if (!file_.GetInfo(&info)) {
- callback.Run(ERROR_FAILED);
+ callback.Run(FILE_ERROR_FAILED);
return;
}
@@ -223,7 +229,7 @@ void FileImpl::Touch(TimespecOrNowPtr atime,
if (!mtime) {
base::File::Info info;
if (!file_.GetInfo(&info)) {
- callback.Run(ERROR_FAILED);
+ callback.Run(FILE_ERROR_FAILED);
return;
}
@@ -233,7 +239,7 @@ void FileImpl::Touch(TimespecOrNowPtr atime,
}
file_.SetTimes(base_atime, base_mtime);
- callback.Run(ERROR_OK);
+ callback.Run(FILE_ERROR_OK);
}
void FileImpl::Dup(mojo::InterfaceRequest<File> file,
@@ -251,7 +257,7 @@ void FileImpl::Dup(mojo::InterfaceRequest<File> file,
if (file.is_pending())
new FileImpl(file.Pass(), new_file.Pass());
- callback.Run(ERROR_OK);
+ callback.Run(FILE_ERROR_OK);
}
void FileImpl::AsHandle(const AsHandleCallback& callback) {
@@ -268,7 +274,7 @@ void FileImpl::AsHandle(const AsHandleCallback& callback) {
base::File::Info info;
if (!new_file.GetInfo(&info)) {
- callback.Run(ERROR_FAILED, ScopedHandle());
+ callback.Run(FILE_ERROR_FAILED, ScopedHandle());
return;
}
@@ -277,7 +283,7 @@ void FileImpl::AsHandle(const AsHandleCallback& callback) {
// passing a file descriptor to a directory is a sandbox escape on Windows,
// we should be absolutely paranoid.
if (info.is_directory) {
- callback.Run(ERROR_NOT_A_FILE, ScopedHandle());
+ callback.Run(FILE_ERROR_NOT_A_FILE, ScopedHandle());
return;
}
@@ -285,11 +291,11 @@ void FileImpl::AsHandle(const AsHandleCallback& callback) {
MojoResult create_result = MojoCreatePlatformHandleWrapper(
new_file.TakePlatformFile(), &mojo_handle);
if (create_result != MOJO_RESULT_OK) {
- callback.Run(ERROR_FAILED, ScopedHandle());
+ callback.Run(FILE_ERROR_FAILED, ScopedHandle());
return;
}
- callback.Run(ERROR_OK, ScopedHandle(mojo::Handle(mojo_handle)).Pass());
+ callback.Run(FILE_ERROR_OK, ScopedHandle(mojo::Handle(mojo_handle)).Pass());
}
} // namespace filesystem
« no previous file with comments | « components/filesystem/directory_impl_unittest.cc ('k') | components/filesystem/file_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698