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

Side by Side Diff: net/disk_cache/blockfile/file_ios.cc

Issue 2404823002: Fix error handling in POSIX version of the base::File::GetLength. (Closed)
Patch Set: Fix error handling in POSIX version of the base::File::GetLength. Created 4 years 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "net/disk_cache/blockfile/file.h" 5 #include "net/disk_cache/blockfile/file.h"
6 6
7 #include <limits.h> 7 #include <limits.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <limits> 10 #include <limits>
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 if (length > std::numeric_limits<uint32_t>::max()) 251 if (length > std::numeric_limits<uint32_t>::max())
252 return false; 252 return false;
253 253
254 return base_file_.SetLength(length); 254 return base_file_.SetLength(length);
255 } 255 }
256 256
257 size_t File::GetLength() { 257 size_t File::GetLength() {
258 DCHECK(base_file_.IsValid()); 258 DCHECK(base_file_.IsValid());
259 int64_t len = base_file_.GetLength(); 259 int64_t len = base_file_.GetLength();
260 260
261 if (len < 0)
262 return 0;
261 if (len > static_cast<int64_t>(std::numeric_limits<uint32_t>::max())) 263 if (len > static_cast<int64_t>(std::numeric_limits<uint32_t>::max()))
262 return std::numeric_limits<uint32_t>::max(); 264 return std::numeric_limits<uint32_t>::max();
263 265
264 return static_cast<size_t>(len); 266 return static_cast<size_t>(len);
265 } 267 }
266 268
267 // Static. 269 // Static.
268 void File::WaitForPendingIO(int* num_pending_io) { 270 void File::WaitForPendingIO(int* num_pending_io) {
269 // We may be running unit tests so we should allow be able to reset the 271 // We may be running unit tests so we should allow be able to reset the
270 // message loop. 272 // message loop.
(...skipping 21 matching lines...) Expand all
292 return false; 294 return false;
293 295
294 GetFileInFlightIO()->PostWrite(this, buffer, buffer_len, offset, callback); 296 GetFileInFlightIO()->PostWrite(this, buffer, buffer_len, offset, callback);
295 297
296 if (completed) 298 if (completed)
297 *completed = false; 299 *completed = false;
298 return true; 300 return true;
299 } 301 }
300 302
301 } // namespace disk_cache 303 } // namespace disk_cache
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698