diff options
author | Artem Strygin <art-snake@yandex-team.ru> | 2017-10-03 21:54:20 +0300 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2017-10-03 19:06:57 +0000 |
commit | df3d229b592d1ebc7019797e0015dd2219fa3d0c (patch) | |
tree | 64f115616de39a3f7e422e21125b3554cf20d377 /core/fpdfapi | |
parent | a081931e2b00e3aadff2050f7d253e17c124c69f (diff) | |
download | pdfium-df3d229b592d1ebc7019797e0015dd2219fa3d0c.tar.xz |
Simplify CPDF_Parser::GetIDArray
Change-Id: Idbd205edcf7400ffc46edf4d9f09be6ace6d0e7f
Reviewed-on: https://pdfium-review.googlesource.com/13734
Commit-Queue: Art Snake <art-snake@yandex-team.ru>
Reviewed-by: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'core/fpdfapi')
-rw-r--r-- | core/fpdfapi/edit/cpdf_creator.cpp | 2 | ||||
-rw-r--r-- | core/fpdfapi/parser/cpdf_parser.cpp | 19 | ||||
-rw-r--r-- | core/fpdfapi/parser/cpdf_parser.h | 2 |
3 files changed, 4 insertions, 19 deletions
diff --git a/core/fpdfapi/edit/cpdf_creator.cpp b/core/fpdfapi/edit/cpdf_creator.cpp index eecf37b981..9064854779 100644 --- a/core/fpdfapi/edit/cpdf_creator.cpp +++ b/core/fpdfapi/edit/cpdf_creator.cpp @@ -770,7 +770,7 @@ bool CPDF_Creator::Create(uint32_t flags) { } void CPDF_Creator::InitID() { - CPDF_Array* pOldIDArray = m_pParser ? m_pParser->GetIDArray() : nullptr; + const CPDF_Array* pOldIDArray = m_pParser ? m_pParser->GetIDArray() : nullptr; bool idArrayPreExisting = !!m_pIDArray; if (!idArrayPreExisting) { diff --git a/core/fpdfapi/parser/cpdf_parser.cpp b/core/fpdfapi/parser/cpdf_parser.cpp index 02cba64541..c443c8baf2 100644 --- a/core/fpdfapi/parser/cpdf_parser.cpp +++ b/core/fpdfapi/parser/cpdf_parser.cpp @@ -1140,23 +1140,8 @@ bool CPDF_Parser::LoadCrossRefV5(FX_FILESIZE* pos, bool bMainXRef) { return true; } -CPDF_Array* CPDF_Parser::GetIDArray() { - if (!GetTrailer()) - return nullptr; - - CPDF_Object* pID = GetTrailer()->GetObjectFor("ID"); - if (!pID) - return nullptr; - - CPDF_Reference* pRef = pID->AsReference(); - if (!pRef) - return ToArray(pID); - - std::unique_ptr<CPDF_Object> pNewObj = - ParseIndirectObject(nullptr, pRef->GetRefObjNum()); - pID = pNewObj.get(); - GetTrailer()->SetFor("ID", std::move(pNewObj)); - return ToArray(pID); +const CPDF_Array* CPDF_Parser::GetIDArray() const { + return GetTrailer() ? GetTrailer()->GetArrayFor("ID") : nullptr; } uint32_t CPDF_Parser::GetRootObjNum() { diff --git a/core/fpdfapi/parser/cpdf_parser.h b/core/fpdfapi/parser/cpdf_parser.h index 2dee1ab9e1..7c6a75d8c5 100644 --- a/core/fpdfapi/parser/cpdf_parser.h +++ b/core/fpdfapi/parser/cpdf_parser.h @@ -63,7 +63,7 @@ class CPDF_Parser { uint32_t GetPermissions() const; uint32_t GetRootObjNum(); uint32_t GetInfoObjNum(); - CPDF_Array* GetIDArray(); + const CPDF_Array* GetIDArray() const; CPDF_Dictionary* GetEncryptDict() const { return m_pEncryptDict.Get(); } |