summaryrefslogtreecommitdiffstats
path: root/webkit
diff options
context:
space:
mode:
authorhidehiko@chromium.org <hidehiko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-27 15:48:15 +0000
committerhidehiko@chromium.org <hidehiko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-27 15:48:15 +0000
commit116a31209b25eaca2ef6cfaaf371c37a7f86dcb2 (patch)
tree06ff356091e980df1d0a5da88376fe5c0e61d201 /webkit
parentb287756b483a11ca3de9c972ef82bba85c8d9ad3 (diff)
downloadchromium_src-116a31209b25eaca2ef6cfaaf371c37a7f86dcb2.zip
chromium_src-116a31209b25eaca2ef6cfaaf371c37a7f86dcb2.tar.gz
chromium_src-116a31209b25eaca2ef6cfaaf371c37a7f86dcb2.tar.bz2
Upgrade the return type of GetLength from int to int64.
The size of file can be larger than 2G, so int may not have enough range to return it. Considering the callback already takes int64, it should be ok to use it for the return type too. BUG=127129 TEST=Ran unit_tests Review URL: https://chromiumcodereview.appspot.com/13113003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@190942 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit')
-rw-r--r--webkit/blob/file_stream_reader.h7
-rw-r--r--webkit/blob/local_file_stream_reader.cc2
-rw-r--r--webkit/blob/local_file_stream_reader.h4
-rw-r--r--webkit/blob/local_file_stream_reader_unittest.cc12
-rw-r--r--webkit/fileapi/file_system_file_stream_reader.cc2
-rw-r--r--webkit/fileapi/file_system_file_stream_reader.h2
-rw-r--r--webkit/fileapi/file_system_file_stream_reader_unittest.cc14
-rw-r--r--webkit/fileapi/upload_file_system_file_element_reader.cc6
8 files changed, 27 insertions, 22 deletions
diff --git a/webkit/blob/file_stream_reader.h b/webkit/blob/file_stream_reader.h
index 13f7c4f..9680ba6 100644
--- a/webkit/blob/file_stream_reader.h
+++ b/webkit/blob/file_stream_reader.h
@@ -41,11 +41,14 @@ class WEBKIT_STORAGE_EXPORT FileStreamReader {
// Returns the length of the file if it could successfully retrieve the
// file info *and* its last modification time equals to
- // expected_modification_time_ (rv >= 0 cases).
+ // expected modification time (rv >= 0 cases).
// Otherwise, a negative error code is returned (rv < 0 cases).
// If the stream is deleted while it has an in-flight GetLength operation
// |callback| will not be called.
- virtual int GetLength(const net::Int64CompletionCallback& callback) = 0;
+ // Note that the return type is int64 to return a larger file's size (a file
+ // larger than 2G) but an error code should fit in the int range (may be
+ // smaller than int64 range).
+ virtual int64 GetLength(const net::Int64CompletionCallback& callback) = 0;
};
} // namespace webkit_blob
diff --git a/webkit/blob/local_file_stream_reader.cc b/webkit/blob/local_file_stream_reader.cc
index dab8aa5..2158fde 100644
--- a/webkit/blob/local_file_stream_reader.cc
+++ b/webkit/blob/local_file_stream_reader.cc
@@ -57,7 +57,7 @@ int LocalFileStreamReader::Read(net::IOBuffer* buf, int buf_len,
make_scoped_refptr(buf), buf_len, callback));
}
-int LocalFileStreamReader::GetLength(
+int64 LocalFileStreamReader::GetLength(
const net::Int64CompletionCallback& callback) {
const bool posted = base::FileUtilProxy::GetFileInfo(
task_runner_, file_path_,
diff --git a/webkit/blob/local_file_stream_reader.h b/webkit/blob/local_file_stream_reader.h
index d5117a6..3b920d8 100644
--- a/webkit/blob/local_file_stream_reader.h
+++ b/webkit/blob/local_file_stream_reader.h
@@ -41,13 +41,13 @@ class WEBKIT_STORAGE_EXPORT LocalFileStreamReader : public FileStreamReader {
LocalFileStreamReader(base::TaskRunner* task_runner,
const base::FilePath& file_path,
int64 initial_offset,
- const base::Time& expected_modification_time);
+ const base::Time& expected_modification_time);
virtual ~LocalFileStreamReader();
// FileStreamReader overrides.
virtual int Read(net::IOBuffer* buf, int buf_len,
const net::CompletionCallback& callback) OVERRIDE;
- virtual int GetLength(
+ virtual int64 GetLength(
const net::Int64CompletionCallback& callback) OVERRIDE;
private:
diff --git a/webkit/blob/local_file_stream_reader_unittest.cc b/webkit/blob/local_file_stream_reader_unittest.cc
index 4726e33..d5ea2a0 100644
--- a/webkit/blob/local_file_stream_reader_unittest.cc
+++ b/webkit/blob/local_file_stream_reader_unittest.cc
@@ -153,9 +153,9 @@ TEST_F(LocalFileStreamReaderTest, Empty) {
ASSERT_EQ(0U, data.size());
net::TestInt64CompletionCallback callback;
- result = reader->GetLength(callback.callback());
- if (result == net::ERR_IO_PENDING)
- result = callback.WaitForResult();
+ int64 length_result = reader->GetLength(callback.callback());
+ if (length_result == net::ERR_IO_PENDING)
+ length_result = callback.WaitForResult();
ASSERT_EQ(0, result);
}
@@ -163,7 +163,7 @@ TEST_F(LocalFileStreamReaderTest, GetLengthNormal) {
scoped_ptr<LocalFileStreamReader> reader(
CreateFileReader(test_path(), 0, test_file_modification_time()));
net::TestInt64CompletionCallback callback;
- int result = reader->GetLength(callback.callback());
+ int64 result = reader->GetLength(callback.callback());
if (result == net::ERR_IO_PENDING)
result = callback.WaitForResult();
ASSERT_EQ(kTestDataSize, result);
@@ -177,7 +177,7 @@ TEST_F(LocalFileStreamReaderTest, GetLengthAfterModified) {
scoped_ptr<LocalFileStreamReader> reader(
CreateFileReader(test_path(), 0, test_file_modification_time()));
net::TestInt64CompletionCallback callback;
- int result = reader->GetLength(callback.callback());
+ int64 result = reader->GetLength(callback.callback());
if (result == net::ERR_IO_PENDING)
result = callback.WaitForResult();
ASSERT_EQ(net::ERR_UPLOAD_FILE_CHANGED, result);
@@ -194,7 +194,7 @@ TEST_F(LocalFileStreamReaderTest, GetLengthWithOffset) {
scoped_ptr<LocalFileStreamReader> reader(
CreateFileReader(test_path(), 3, base::Time()));
net::TestInt64CompletionCallback callback;
- int result = reader->GetLength(callback.callback());
+ int64 result = reader->GetLength(callback.callback());
if (result == net::ERR_IO_PENDING)
result = callback.WaitForResult();
// Initial offset does not affect the result of GetLength.
diff --git a/webkit/fileapi/file_system_file_stream_reader.cc b/webkit/fileapi/file_system_file_stream_reader.cc
index e5e0299..6b21388 100644
--- a/webkit/fileapi/file_system_file_stream_reader.cc
+++ b/webkit/fileapi/file_system_file_stream_reader.cc
@@ -74,7 +74,7 @@ int FileSystemFileStreamReader::Read(
callback);
}
-int FileSystemFileStreamReader::GetLength(
+int64 FileSystemFileStreamReader::GetLength(
const net::Int64CompletionCallback& callback) {
if (local_file_reader_.get())
return local_file_reader_->GetLength(callback);
diff --git a/webkit/fileapi/file_system_file_stream_reader.h b/webkit/fileapi/file_system_file_stream_reader.h
index 0a6e750..04ff962 100644
--- a/webkit/fileapi/file_system_file_stream_reader.h
+++ b/webkit/fileapi/file_system_file_stream_reader.h
@@ -48,7 +48,7 @@ class WEBKIT_STORAGE_EXPORT_PRIVATE FileSystemFileStreamReader
// FileStreamReader overrides.
virtual int Read(net::IOBuffer* buf, int buf_len,
const net::CompletionCallback& callback) OVERRIDE;
- virtual int GetLength(
+ virtual int64 GetLength(
const net::Int64CompletionCallback& callback) OVERRIDE;
private:
diff --git a/webkit/fileapi/file_system_file_stream_reader_unittest.cc b/webkit/fileapi/file_system_file_stream_reader_unittest.cc
index 327cb64..f54be18 100644
--- a/webkit/fileapi/file_system_file_stream_reader_unittest.cc
+++ b/webkit/fileapi/file_system_file_stream_reader_unittest.cc
@@ -184,17 +184,17 @@ TEST_F(FileSystemFileStreamReaderTest, Empty) {
ASSERT_EQ(0U, data.size());
net::TestInt64CompletionCallback callback;
- result = reader->GetLength(callback.callback());
- if (result == net::ERR_IO_PENDING)
- result = callback.WaitForResult();
- ASSERT_EQ(0, result);
+ int64 length_result = reader->GetLength(callback.callback());
+ if (length_result == net::ERR_IO_PENDING)
+ length_result = callback.WaitForResult();
+ ASSERT_EQ(0, length_result);
}
TEST_F(FileSystemFileStreamReaderTest, GetLengthNormal) {
scoped_ptr<FileSystemFileStreamReader> reader(
CreateFileReader(kTestFileName, 0, test_file_modification_time()));
net::TestInt64CompletionCallback callback;
- int result = reader->GetLength(callback.callback());
+ int64 result = reader->GetLength(callback.callback());
if (result == net::ERR_IO_PENDING)
result = callback.WaitForResult();
ASSERT_EQ(kTestDataSize, result);
@@ -208,7 +208,7 @@ TEST_F(FileSystemFileStreamReaderTest, GetLengthAfterModified) {
scoped_ptr<FileSystemFileStreamReader> reader(
CreateFileReader(kTestFileName, 0, fake_expected_modification_time));
net::TestInt64CompletionCallback callback;
- int result = reader->GetLength(callback.callback());
+ int64 result = reader->GetLength(callback.callback());
if (result == net::ERR_IO_PENDING)
result = callback.WaitForResult();
ASSERT_EQ(net::ERR_UPLOAD_FILE_CHANGED, result);
@@ -225,7 +225,7 @@ TEST_F(FileSystemFileStreamReaderTest, GetLengthWithOffset) {
scoped_ptr<FileSystemFileStreamReader> reader(
CreateFileReader(kTestFileName, 3, base::Time()));
net::TestInt64CompletionCallback callback;
- int result = reader->GetLength(callback.callback());
+ int64 result = reader->GetLength(callback.callback());
if (result == net::ERR_IO_PENDING)
result = callback.WaitForResult();
// Initial offset does not affect the result of GetLength.
diff --git a/webkit/fileapi/upload_file_system_file_element_reader.cc b/webkit/fileapi/upload_file_system_file_element_reader.cc
index 6e5f47e..c0586fc 100644
--- a/webkit/fileapi/upload_file_system_file_element_reader.cc
+++ b/webkit/fileapi/upload_file_system_file_element_reader.cc
@@ -46,7 +46,7 @@ int UploadFileSystemFileElementReader::Init(
expected_modification_time_));
DCHECK(stream_reader_);
- const int result = stream_reader_->GetLength(
+ const int64 result = stream_reader_->GetLength(
base::Bind(&UploadFileSystemFileElementReader::OnGetLength,
weak_ptr_factory_.GetWeakPtr(),
callback));
@@ -54,7 +54,9 @@ int UploadFileSystemFileElementReader::Init(
stream_length_ = result;
return net::OK;
}
- return result;
+
+ // The error code can be casted to int.
+ return static_cast<int>(result);
}
uint64 UploadFileSystemFileElementReader::GetContentLength() const {