diff options
author | hidehiko@chromium.org <hidehiko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-27 15:48:15 +0000 |
---|---|---|
committer | hidehiko@chromium.org <hidehiko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-27 15:48:15 +0000 |
commit | 116a31209b25eaca2ef6cfaaf371c37a7f86dcb2 (patch) | |
tree | 06ff356091e980df1d0a5da88376fe5c0e61d201 /webkit | |
parent | b287756b483a11ca3de9c972ef82bba85c8d9ad3 (diff) | |
download | chromium_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.h | 7 | ||||
-rw-r--r-- | webkit/blob/local_file_stream_reader.cc | 2 | ||||
-rw-r--r-- | webkit/blob/local_file_stream_reader.h | 4 | ||||
-rw-r--r-- | webkit/blob/local_file_stream_reader_unittest.cc | 12 | ||||
-rw-r--r-- | webkit/fileapi/file_system_file_stream_reader.cc | 2 | ||||
-rw-r--r-- | webkit/fileapi/file_system_file_stream_reader.h | 2 | ||||
-rw-r--r-- | webkit/fileapi/file_system_file_stream_reader_unittest.cc | 14 | ||||
-rw-r--r-- | webkit/fileapi/upload_file_system_file_element_reader.cc | 6 |
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 { |