#include "core/fpdfapi/parser/cpdf_cross_ref_avail.h"
#include "core/fpdfapi/parser/cpdf_dictionary.h"
#include "core/fpdfapi/parser/cpdf_read_validator.h"
#include "core/fpdfapi/parser/cpdf_reference.h"
#include "core/fpdfapi/parser/cpdf_syntax_parser.h"
#include "core/fpdfapi/parser/fpdf_parser_utility.h"
#include "core/fxcrt/check.h"
#include "core/fxcrt/containers/contains.h"
#include "core/fxcrt/numerics/safe_conversions.h"
namespace {
constexpr char kCrossRefKeyword[] = …;
constexpr char kTrailerKeyword[] = …;
constexpr char kPrevCrossRefFieldKey[] = …;
constexpr char kTypeFieldKey[] = …;
constexpr char kPrevCrossRefStreamOffsetFieldKey[] = …;
constexpr char kXRefKeyword[] = …;
constexpr char kEncryptKey[] = …;
}
CPDF_CrossRefAvail::CPDF_CrossRefAvail(CPDF_SyntaxParser* parser,
FX_FILESIZE last_crossref_offset)
: … { … }
CPDF_CrossRefAvail::~CPDF_CrossRefAvail() = default;
CPDF_DataAvail::DocAvailStatus CPDF_CrossRefAvail::CheckAvail() { … }
bool CPDF_CrossRefAvail::CheckReadProblems() { … }
bool CPDF_CrossRefAvail::CheckCrossRef() { … }
bool CPDF_CrossRefAvail::CheckCrossRefTable() { … }
bool CPDF_CrossRefAvail::CheckCrossRefTableItem() { … }
bool CPDF_CrossRefAvail::CheckCrossRefTableTrailer() { … }
bool CPDF_CrossRefAvail::CheckCrossRefStream() { … }
void CPDF_CrossRefAvail::AddCrossRefForCheck(FX_FILESIZE crossref_offset) { … }
RetainPtr<CPDF_ReadValidator> CPDF_CrossRefAvail::GetValidator() { … }