Fix nits with CPDF_CrossRefAvail member variables. - Mark the UnownedPtr const, as it never changes. - Do not initialize `last_crossref_offset_` in the header, as it is actually initialized by the constructor. The initialization in the header is deceptive. - Shorten "current_foo_" to "foo_". Change-Id: I8e447168270d69b4970b3089e4a55a9bd79da94d Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/74150 Reviewed-by: Hui Yingst <nigi@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fpdfapi/parser/cpdf_cross_ref_avail.cpp b/core/fpdfapi/parser/cpdf_cross_ref_avail.cpp index 9167812..514f73b 100644 --- a/core/fpdfapi/parser/cpdf_cross_ref_avail.cpp +++ b/core/fpdfapi/parser/cpdf_cross_ref_avail.cpp
@@ -34,13 +34,13 @@ CPDF_CrossRefAvail::~CPDF_CrossRefAvail() = default; CPDF_DataAvail::DocAvailStatus CPDF_CrossRefAvail::CheckAvail() { - if (current_status_ == CPDF_DataAvail::DataAvailable) + if (status_ == CPDF_DataAvail::DataAvailable) return CPDF_DataAvail::DataAvailable; const CPDF_ReadValidator::Session read_session(GetValidator()); while (true) { bool check_result = false; - switch (current_state_) { + switch (state_) { case State::kCrossRefCheck: check_result = CheckCrossRef(); break; @@ -53,7 +53,7 @@ case State::kDone: break; default: { - current_status_ = CPDF_DataAvail::DataError; + status_ = CPDF_DataAvail::DataError; NOTREACHED(); break; } @@ -63,12 +63,12 @@ ASSERT(!GetValidator()->has_read_problems()); } - return current_status_; + return status_; } bool CPDF_CrossRefAvail::CheckReadProblems() { if (GetValidator()->read_error()) { - current_status_ = CPDF_DataAvail::DataError; + status_ = CPDF_DataAvail::DataError; return true; } return GetValidator()->has_unavailable_data(); @@ -77,8 +77,8 @@ bool CPDF_CrossRefAvail::CheckCrossRef() { if (cross_refs_for_check_.empty()) { // All cross refs were checked. - current_state_ = State::kDone; - current_status_ = CPDF_DataAvail::DataAvailable; + state_ = State::kDone; + status_ = CPDF_DataAvail::DataAvailable; return true; } parser_->SetPos(cross_refs_for_check_.front()); @@ -102,36 +102,36 @@ return false; if (keyword != kCrossRefKeyword) { - current_status_ = CPDF_DataAvail::DataError; + status_ = CPDF_DataAvail::DataError; return false; } - current_state_ = State::kCrossRefV4ItemCheck; - current_offset_ = parser_->GetPos(); + state_ = State::kCrossRefV4ItemCheck; + offset_ = parser_->GetPos(); return true; } bool CPDF_CrossRefAvail::CheckCrossRefV4Item() { - parser_->SetPos(current_offset_); + parser_->SetPos(offset_); const ByteString keyword = parser_->GetKeyword(); if (CheckReadProblems()) return false; if (keyword.IsEmpty()) { - current_status_ = CPDF_DataAvail::DataError; + status_ = CPDF_DataAvail::DataError; return false; } if (keyword == kTrailerKeyword) - current_state_ = State::kCrossRefV4TrailerCheck; + state_ = State::kCrossRefV4TrailerCheck; // Go to next item. - current_offset_ = parser_->GetPos(); + offset_ = parser_->GetPos(); return true; } bool CPDF_CrossRefAvail::CheckCrossRefV4Trailer() { - parser_->SetPos(current_offset_); + parser_->SetPos(offset_); RetainPtr<CPDF_Dictionary> trailer = ToDictionary(parser_->GetObjectBody(nullptr)); @@ -139,12 +139,12 @@ return false; if (!trailer) { - current_status_ = CPDF_DataAvail::DataError; + status_ = CPDF_DataAvail::DataError; return false; } if (ToReference(trailer->GetObjectFor(kEncryptKey))) { - current_status_ = CPDF_DataAvail::DataError; + status_ = CPDF_DataAvail::DataError; return false; } @@ -162,7 +162,7 @@ AddCrossRefForCheck(static_cast<FX_FILESIZE>(stream_xref_offset)); // Goto check next crossref - current_state_ = State::kCrossRefCheck; + state_ = State::kCrossRefCheck; return true; } @@ -175,12 +175,12 @@ const CPDF_Dictionary* trailer = cross_ref && cross_ref->IsStream() ? cross_ref->GetDict() : nullptr; if (!trailer) { - current_status_ = CPDF_DataAvail::DataError; + status_ = CPDF_DataAvail::DataError; return false; } if (ToReference(trailer->GetObjectFor(kEncryptKey))) { - current_status_ = CPDF_DataAvail::DataError; + status_ = CPDF_DataAvail::DataError; return false; } @@ -192,7 +192,7 @@ } } // Goto check next crossref - current_state_ = State::kCrossRefCheck; + state_ = State::kCrossRefCheck; return true; }
diff --git a/core/fpdfapi/parser/cpdf_cross_ref_avail.h b/core/fpdfapi/parser/cpdf_cross_ref_avail.h index e550410..2e095e4 100644 --- a/core/fpdfapi/parser/cpdf_cross_ref_avail.h +++ b/core/fpdfapi/parser/cpdf_cross_ref_avail.h
@@ -42,12 +42,11 @@ RetainPtr<CPDF_ReadValidator> GetValidator(); - UnownedPtr<CPDF_SyntaxParser> parser_; - const FX_FILESIZE last_crossref_offset_ = 0; - CPDF_DataAvail::DocAvailStatus current_status_ = - CPDF_DataAvail::DataNotAvailable; - State current_state_ = State::kCrossRefCheck; - FX_FILESIZE current_offset_ = 0; + UnownedPtr<CPDF_SyntaxParser> const parser_; + const FX_FILESIZE last_crossref_offset_; + CPDF_DataAvail::DocAvailStatus status_ = CPDF_DataAvail::DataNotAvailable; + State state_ = State::kCrossRefCheck; + FX_FILESIZE offset_ = 0; std::queue<FX_FILESIZE> cross_refs_for_check_; std::set<FX_FILESIZE> registered_crossrefs_; };