Index: core/fpdfapi/parser/cpdf_parser_unittest.cpp |
diff --git a/core/fpdfapi/parser/cpdf_parser_unittest.cpp b/core/fpdfapi/parser/cpdf_parser_unittest.cpp |
index 7148c54f30d55649cad324ff4a382df7b0a826e4..b78dffd095b892f2854b1dd168f3ee8426f22afc 100644 |
--- a/core/fpdfapi/parser/cpdf_parser_unittest.cpp |
+++ b/core/fpdfapi/parser/cpdf_parser_unittest.cpp |
@@ -16,25 +16,30 @@ |
class CFX_TestBufferRead : public IFX_SeekableReadStream { |
public: |
CFX_TestBufferRead(const unsigned char* buffer_in, size_t buf_size) |
- : buffer_(buffer_in), total_size_(buf_size) {} |
+ : buffer_(buffer_in), total_size_(buf_size), current_pos_(0) {} |
// IFX_Stream |
void Release() override { delete this; } |
- // IFX_SeekableReadStream |
- bool ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) override { |
- if (offset < 0 || offset + size > total_size_) |
- return false; |
+ // IFX_FileRead |
Tom Sepez
2016/11/14 20:27:40
nit: I renamed IFX_FileRead to IFX_SeekableReadStr
|
+ bool IsEOF() override { return current_pos_ >= total_size_; } |
+ size_t ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) override { |
+ if (offset < 0 || |
+ offset + pdfium::base::checked_cast<FX_FILESIZE>(size) > total_size_) { |
Tom Sepez
2016/11/14 20:27:40
note: this addition can overflow, but its only a t
|
+ return 0; |
+ } |
memcpy(buffer, buffer_ + offset, size); |
- return true; |
+ current_pos_ = offset + pdfium::base::checked_cast<FX_FILESIZE>(size); |
+ return size; |
} |
- FX_FILESIZE GetSize() override { return (FX_FILESIZE)total_size_; }; |
+ FX_FILESIZE GetSize() override { return total_size_; }; |
protected: |
const unsigned char* buffer_; |
- size_t total_size_; |
+ FX_FILESIZE total_size_; |
+ FX_FILESIZE current_pos_; |
}; |
// A wrapper class to help test member functions of CPDF_Parser. |