| Index: core/fpdfapi/fpdf_parser/cpdf_parser.cpp
|
| diff --git a/core/fpdfapi/fpdf_parser/cpdf_parser.cpp b/core/fpdfapi/fpdf_parser/cpdf_parser.cpp
|
| index ffd3f79a621955629271fa7935d667a109021d72..e2bab450bee351722c5792c953cff38ecd380bce 100644
|
| --- a/core/fpdfapi/fpdf_parser/cpdf_parser.cpp
|
| +++ b/core/fpdfapi/fpdf_parser/cpdf_parser.cpp
|
| @@ -126,7 +126,7 @@ void CPDF_Parser::ShrinkObjectMap(uint32_t objnum) {
|
|
|
| void CPDF_Parser::CloseParser() {
|
| m_bVersionUpdated = false;
|
| - m_pDocument.reset();
|
| + m_pDocument = nullptr;
|
|
|
| if (m_pTrailer) {
|
| m_pTrailer->Release();
|
| @@ -158,9 +158,8 @@ void CPDF_Parser::CloseParser() {
|
| }
|
| }
|
|
|
| -CPDF_Parser::Error CPDF_Parser::StartParse(
|
| - IFX_FileRead* pFileAccess,
|
| - std::unique_ptr<CPDF_Document> pDocument) {
|
| +CPDF_Parser::Error CPDF_Parser::StartParse(IFX_FileRead* pFileAccess,
|
| + CPDF_Document* pDocument) {
|
| CloseParser();
|
|
|
| m_bXRefStream = FALSE;
|
| @@ -190,7 +189,7 @@ CPDF_Parser::Error CPDF_Parser::StartParse(
|
| return FORMAT_ERROR;
|
|
|
| m_pSyntax->RestorePos(m_pSyntax->m_FileLen - m_pSyntax->m_HeaderOffset - 9);
|
| - m_pDocument = std::move(pDocument);
|
| + m_pDocument = pDocument;
|
|
|
| FX_BOOL bXRefRebuilt = FALSE;
|
| if (m_pSyntax->SearchWord("startxref", TRUE, FALSE, 4096)) {
|
| @@ -765,7 +764,7 @@ FX_BOOL CPDF_Parser::RebuildCrossRef() {
|
| last_obj = start_pos;
|
| FX_FILESIZE obj_end = 0;
|
| CPDF_Object* pObject = ParseIndirectObjectAtByStrict(
|
| - m_pDocument.get(), obj_pos, objnum, &obj_end);
|
| + m_pDocument, obj_pos, objnum, &obj_end);
|
| if (CPDF_Stream* pStream = ToStream(pObject)) {
|
| if (CPDF_Dictionary* pDict = pStream->GetDict()) {
|
| if ((pDict->KeyExist("Type")) &&
|
| @@ -828,8 +827,7 @@ FX_BOOL CPDF_Parser::RebuildCrossRef() {
|
| last_trailer = pos + i - 7;
|
| m_pSyntax->RestorePos(pos + i - m_pSyntax->m_HeaderOffset);
|
|
|
| - CPDF_Object* pObj =
|
| - m_pSyntax->GetObject(m_pDocument.get(), 0, 0, true);
|
| + CPDF_Object* pObj = m_pSyntax->GetObject(m_pDocument, 0, 0, true);
|
| if (pObj) {
|
| if (!pObj->IsDictionary() && !pObj->AsStream()) {
|
| pObj->Release();
|
| @@ -851,7 +849,7 @@ FX_BOOL CPDF_Parser::RebuildCrossRef() {
|
| uint32_t dwObjNum =
|
| pElement ? pElement->GetObjNum() : 0;
|
| if (dwObjNum) {
|
| - m_pTrailer->SetAtReference(key, m_pDocument.get(),
|
| + m_pTrailer->SetAtReference(key, m_pDocument,
|
| dwObjNum);
|
| } else {
|
| m_pTrailer->SetAt(key, pElement->Clone());
|
| @@ -975,7 +973,7 @@ FX_BOOL CPDF_Parser::RebuildCrossRef() {
|
| }
|
|
|
| FX_BOOL CPDF_Parser::LoadCrossRefV5(FX_FILESIZE* pos, FX_BOOL bMainXRef) {
|
| - CPDF_Object* pObject = ParseIndirectObjectAt(m_pDocument.get(), *pos, 0);
|
| + CPDF_Object* pObject = ParseIndirectObjectAt(m_pDocument, *pos, 0);
|
| if (!pObject)
|
| return FALSE;
|
|
|
| @@ -1478,7 +1476,7 @@ CPDF_Dictionary* CPDF_Parser::LoadTrailerV4() {
|
| return nullptr;
|
|
|
| std::unique_ptr<CPDF_Object, ReleaseDeleter<CPDF_Object>> pObj(
|
| - m_pSyntax->GetObject(m_pDocument.get(), 0, 0, true));
|
| + m_pSyntax->GetObject(m_pDocument, 0, 0, true));
|
| if (!ToDictionary(pObj.get()))
|
| return nullptr;
|
| return pObj.release()->AsDictionary();
|
| @@ -1550,9 +1548,8 @@ FX_BOOL CPDF_Parser::IsLinearizedFile(IFX_FileRead* pFileAccess,
|
| return FALSE;
|
| }
|
|
|
| -CPDF_Parser::Error CPDF_Parser::StartLinearizedParse(
|
| - IFX_FileRead* pFileAccess,
|
| - std::unique_ptr<CPDF_Document> pDocument) {
|
| +CPDF_Parser::Error CPDF_Parser::StartLinearizedParse(IFX_FileRead* pFileAccess,
|
| + CPDF_Document* pDocument) {
|
| CloseParser();
|
| m_bXRefStream = FALSE;
|
| m_LastXRefOffset = 0;
|
| @@ -1567,7 +1564,7 @@ CPDF_Parser::Error CPDF_Parser::StartLinearizedParse(
|
| return StartParse(pFileAccess, std::move(pDocument));
|
| }
|
|
|
| - m_pDocument = std::move(pDocument);
|
| + m_pDocument = pDocument;
|
| FX_FILESIZE dwFirstXRefOffset = m_pSyntax->SavePos();
|
|
|
| FX_BOOL bXRefRebuilt = FALSE;
|
|
|