summaryrefslogtreecommitdiff
path: root/core/fpdfapi/parser/cpdf_read_validator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/fpdfapi/parser/cpdf_read_validator.cpp')
-rw-r--r--core/fpdfapi/parser/cpdf_read_validator.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/core/fpdfapi/parser/cpdf_read_validator.cpp b/core/fpdfapi/parser/cpdf_read_validator.cpp
index 148ecfd424..be20f18f33 100644
--- a/core/fpdfapi/parser/cpdf_read_validator.cpp
+++ b/core/fpdfapi/parser/cpdf_read_validator.cpp
@@ -26,6 +26,19 @@ FX_FILESIZE AlignUp(FX_FILESIZE offset) {
} // namespace
+CPDF_ReadValidator::Session::Session(CPDF_ReadValidator* validator)
+ : validator_(validator) {
+ ASSERT(validator_);
+ saved_read_error_ = validator_->read_error_;
+ saved_has_unavailable_data_ = validator_->has_unavailable_data_;
+ validator_->ResetErrors();
+}
+
+CPDF_ReadValidator::Session::~Session() {
+ validator_->read_error_ |= saved_read_error_;
+ validator_->has_unavailable_data_ |= saved_has_unavailable_data_;
+}
+
CPDF_ReadValidator::CPDF_ReadValidator(
const CFX_RetainPtr<IFX_SeekableReadStream>& file_read,
CPDF_DataAvail::FileAvail* file_avail)