OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "third_party/zlib/google/zip_reader.h" | 5 #include "third_party/zlib/google/zip_reader.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/files/file.h" | 10 #include "base/files/file.h" |
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
296 DCHECK(zip_file_); | 296 DCHECK(zip_file_); |
297 | 297 |
298 const int open_result = unzOpenCurrentFile(zip_file_); | 298 const int open_result = unzOpenCurrentFile(zip_file_); |
299 if (open_result != UNZ_OK) | 299 if (open_result != UNZ_OK) |
300 return false; | 300 return false; |
301 | 301 |
302 if (!delegate->PrepareOutput()) | 302 if (!delegate->PrepareOutput()) |
303 return false; | 303 return false; |
304 | 304 |
305 bool success = true; // This becomes false when something bad happens. | 305 bool success = true; // This becomes false when something bad happens. |
306 scoped_ptr<char[]> buf(new char[internal::kZipBufSize]); | 306 std::unique_ptr<char[]> buf(new char[internal::kZipBufSize]); |
307 while (true) { | 307 while (true) { |
308 const int num_bytes_read = unzReadCurrentFile(zip_file_, buf.get(), | 308 const int num_bytes_read = unzReadCurrentFile(zip_file_, buf.get(), |
309 internal::kZipBufSize); | 309 internal::kZipBufSize); |
310 if (num_bytes_read == 0) { | 310 if (num_bytes_read == 0) { |
311 // Reached the end of the file. | 311 // Reached the end of the file. |
312 break; | 312 break; |
313 } else if (num_bytes_read < 0) { | 313 } else if (num_bytes_read < 0) { |
314 // If num_bytes_read < 0, then it's a specific UNZ_* error code. | 314 // If num_bytes_read < 0, then it's a specific UNZ_* error code. |
315 success = false; | 315 success = false; |
316 break; | 316 break; |
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
529 } | 529 } |
530 | 530 |
531 bool FileWriterDelegate::WriteBytes(const char* data, int num_bytes) { | 531 bool FileWriterDelegate::WriteBytes(const char* data, int num_bytes) { |
532 int bytes_written = file_->WriteAtCurrentPos(data, num_bytes); | 532 int bytes_written = file_->WriteAtCurrentPos(data, num_bytes); |
533 if (bytes_written > 0) | 533 if (bytes_written > 0) |
534 file_length_ += bytes_written; | 534 file_length_ += bytes_written; |
535 return bytes_written == num_bytes; | 535 return bytes_written == num_bytes; |
536 } | 536 } |
537 | 537 |
538 } // namespace zip | 538 } // namespace zip |
OLD | NEW |