diff options
Diffstat (limited to 'core/src/fpdfdoc/doc_bookmark.cpp')
-rw-r--r-- | core/src/fpdfdoc/doc_bookmark.cpp | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/core/src/fpdfdoc/doc_bookmark.cpp b/core/src/fpdfdoc/doc_bookmark.cpp index 6b020e5957..5ebd27e6e7 100644 --- a/core/src/fpdfdoc/doc_bookmark.cpp +++ b/core/src/fpdfdoc/doc_bookmark.cpp @@ -68,21 +68,19 @@ CFX_WideString CPDF_Bookmark::GetTitle() const { return CFX_WideString(buf.get(), len); } CPDF_Dest CPDF_Bookmark::GetDest(CPDF_Document* pDocument) const { - if (!m_pDict) { + if (!m_pDict) return CPDF_Dest(); - } + CPDF_Object* pDest = m_pDict->GetElementValue("Dest"); if (!pDest) return CPDF_Dest(); - if (pDest->IsString() || pDest->IsName()) { CPDF_NameTree name_tree(pDocument, FX_BSTRC("Dests")); CFX_ByteStringC name = pDest->GetString(); return CPDF_Dest(name_tree.LookupNamedDest(pDocument, name)); } - if (pDest->GetType() == PDFOBJ_ARRAY) { - return CPDF_Dest((CPDF_Array*)pDest); - } + if (CPDF_Array* pArray = pDest->AsArray()) + return CPDF_Dest(pArray); return CPDF_Dest(); } CPDF_Action CPDF_Bookmark::GetAction() const { |