| Index: core/src/fpdfdoc/doc_link.cpp
|
| diff --git a/core/src/fpdfdoc/doc_link.cpp b/core/src/fpdfdoc/doc_link.cpp
|
| index fdae96ac2ec2e97a6336b4990bfc25f1ac09bf9a..15bd14c31e8724120702df2e05dffd52751421a6 100644
|
| --- a/core/src/fpdfdoc/doc_link.cpp
|
| +++ b/core/src/fpdfdoc/doc_link.cpp
|
| @@ -6,100 +6,93 @@
|
|
|
| #include "../../include/fpdfdoc/fpdf_doc.h"
|
|
|
| -CPDF_LinkList::~CPDF_LinkList()
|
| -{
|
| - FX_POSITION pos = m_PageMap.GetStartPosition();
|
| - while (pos) {
|
| - void* key;
|
| - void* value;
|
| - m_PageMap.GetNextAssoc(pos, key, value);
|
| - delete (CFX_PtrArray*)value;
|
| - }
|
| +CPDF_LinkList::~CPDF_LinkList() {
|
| + FX_POSITION pos = m_PageMap.GetStartPosition();
|
| + while (pos) {
|
| + void* key;
|
| + void* value;
|
| + m_PageMap.GetNextAssoc(pos, key, value);
|
| + delete (CFX_PtrArray*)value;
|
| + }
|
| }
|
| -CFX_PtrArray* CPDF_LinkList::GetPageLinks(CPDF_Page* pPage)
|
| -{
|
| - FX_DWORD objnum = pPage->m_pFormDict->GetObjNum();
|
| - if (objnum == 0) {
|
| - return NULL;
|
| - }
|
| - CFX_PtrArray* pPageLinkList = NULL;
|
| - if (!m_PageMap.Lookup((void*)(uintptr_t)objnum, (void*&)pPageLinkList)) {
|
| - pPageLinkList = new CFX_PtrArray;
|
| - m_PageMap.SetAt((void*)(uintptr_t)objnum, pPageLinkList);
|
| - LoadPageLinks(pPage, pPageLinkList);
|
| - }
|
| - return pPageLinkList;
|
| +CFX_PtrArray* CPDF_LinkList::GetPageLinks(CPDF_Page* pPage) {
|
| + FX_DWORD objnum = pPage->m_pFormDict->GetObjNum();
|
| + if (objnum == 0) {
|
| + return NULL;
|
| + }
|
| + CFX_PtrArray* pPageLinkList = NULL;
|
| + if (!m_PageMap.Lookup((void*)(uintptr_t)objnum, (void*&)pPageLinkList)) {
|
| + pPageLinkList = new CFX_PtrArray;
|
| + m_PageMap.SetAt((void*)(uintptr_t)objnum, pPageLinkList);
|
| + LoadPageLinks(pPage, pPageLinkList);
|
| + }
|
| + return pPageLinkList;
|
| }
|
| -int CPDF_LinkList::CountLinks(CPDF_Page* pPage)
|
| -{
|
| - CFX_PtrArray* pPageLinkList = GetPageLinks(pPage);
|
| - if (pPageLinkList == NULL) {
|
| - return 0;
|
| - }
|
| - return pPageLinkList->GetSize();
|
| +int CPDF_LinkList::CountLinks(CPDF_Page* pPage) {
|
| + CFX_PtrArray* pPageLinkList = GetPageLinks(pPage);
|
| + if (pPageLinkList == NULL) {
|
| + return 0;
|
| + }
|
| + return pPageLinkList->GetSize();
|
| }
|
| -CPDF_Link CPDF_LinkList::GetLink(CPDF_Page* pPage, int index)
|
| -{
|
| - CFX_PtrArray* pPageLinkList = GetPageLinks(pPage);
|
| - if (!pPageLinkList) {
|
| - return CPDF_Link();
|
| - }
|
| - return CPDF_Link((CPDF_Dictionary*)pPageLinkList->GetAt(index));
|
| +CPDF_Link CPDF_LinkList::GetLink(CPDF_Page* pPage, int index) {
|
| + CFX_PtrArray* pPageLinkList = GetPageLinks(pPage);
|
| + if (!pPageLinkList) {
|
| + return CPDF_Link();
|
| + }
|
| + return CPDF_Link((CPDF_Dictionary*)pPageLinkList->GetAt(index));
|
| }
|
| -CPDF_Link CPDF_LinkList::GetLinkAtPoint(CPDF_Page* pPage, FX_FLOAT pdf_x, FX_FLOAT pdf_y)
|
| -{
|
| - CFX_PtrArray* pPageLinkList = GetPageLinks(pPage);
|
| - if (!pPageLinkList) {
|
| - return CPDF_Link();
|
| - }
|
| - int size = pPageLinkList->GetSize();
|
| - for (int i = size - 1; i >= 0; --i) {
|
| - CPDF_Link link((CPDF_Dictionary*)pPageLinkList->GetAt(i));
|
| - CPDF_Rect rect = link.GetRect();
|
| - if (rect.Contains(pdf_x, pdf_y)) {
|
| - return link;
|
| - }
|
| - }
|
| +CPDF_Link CPDF_LinkList::GetLinkAtPoint(CPDF_Page* pPage,
|
| + FX_FLOAT pdf_x,
|
| + FX_FLOAT pdf_y) {
|
| + CFX_PtrArray* pPageLinkList = GetPageLinks(pPage);
|
| + if (!pPageLinkList) {
|
| return CPDF_Link();
|
| + }
|
| + int size = pPageLinkList->GetSize();
|
| + for (int i = size - 1; i >= 0; --i) {
|
| + CPDF_Link link((CPDF_Dictionary*)pPageLinkList->GetAt(i));
|
| + CPDF_Rect rect = link.GetRect();
|
| + if (rect.Contains(pdf_x, pdf_y)) {
|
| + return link;
|
| + }
|
| + }
|
| + return CPDF_Link();
|
| }
|
| -void CPDF_LinkList::LoadPageLinks(CPDF_Page* pPage, CFX_PtrArray* pList)
|
| -{
|
| - CPDF_Array* pAnnotList = pPage->m_pFormDict->GetArray("Annots");
|
| - if (pAnnotList == NULL) {
|
| - return;
|
| +void CPDF_LinkList::LoadPageLinks(CPDF_Page* pPage, CFX_PtrArray* pList) {
|
| + CPDF_Array* pAnnotList = pPage->m_pFormDict->GetArray("Annots");
|
| + if (pAnnotList == NULL) {
|
| + return;
|
| + }
|
| + for (FX_DWORD i = 0; i < pAnnotList->GetCount(); i++) {
|
| + CPDF_Dictionary* pAnnot = pAnnotList->GetDict(i);
|
| + if (pAnnot == NULL) {
|
| + continue;
|
| }
|
| - for (FX_DWORD i = 0; i < pAnnotList->GetCount(); i ++) {
|
| - CPDF_Dictionary* pAnnot = pAnnotList->GetDict(i);
|
| - if (pAnnot == NULL) {
|
| - continue;
|
| - }
|
| - if (pAnnot->GetString("Subtype") != "Link") {
|
| - continue;
|
| - }
|
| - pList->Add(pAnnot);
|
| + if (pAnnot->GetString("Subtype") != "Link") {
|
| + continue;
|
| }
|
| + pList->Add(pAnnot);
|
| + }
|
| }
|
| -CPDF_Rect CPDF_Link::GetRect()
|
| -{
|
| - return m_pDict->GetRect("Rect");
|
| +CPDF_Rect CPDF_Link::GetRect() {
|
| + return m_pDict->GetRect("Rect");
|
| }
|
| -CPDF_Dest CPDF_Link::GetDest(CPDF_Document* pDoc)
|
| -{
|
| - CPDF_Object* pDest = m_pDict->GetElementValue("Dest");
|
| - if (pDest == NULL) {
|
| - return CPDF_Dest();
|
| - }
|
| - if (pDest->GetType() == PDFOBJ_STRING || pDest->GetType() == PDFOBJ_NAME) {
|
| - CPDF_NameTree name_tree(pDoc, FX_BSTRC("Dests"));
|
| - CFX_ByteStringC name = pDest->GetString();
|
| - return CPDF_Dest(name_tree.LookupNamedDest(pDoc, name));
|
| - }
|
| - if (pDest->GetType() == PDFOBJ_ARRAY) {
|
| - return CPDF_Dest((CPDF_Array*)pDest);
|
| - }
|
| +CPDF_Dest CPDF_Link::GetDest(CPDF_Document* pDoc) {
|
| + CPDF_Object* pDest = m_pDict->GetElementValue("Dest");
|
| + if (pDest == NULL) {
|
| return CPDF_Dest();
|
| + }
|
| + if (pDest->GetType() == PDFOBJ_STRING || pDest->GetType() == PDFOBJ_NAME) {
|
| + CPDF_NameTree name_tree(pDoc, FX_BSTRC("Dests"));
|
| + CFX_ByteStringC name = pDest->GetString();
|
| + return CPDF_Dest(name_tree.LookupNamedDest(pDoc, name));
|
| + }
|
| + if (pDest->GetType() == PDFOBJ_ARRAY) {
|
| + return CPDF_Dest((CPDF_Array*)pDest);
|
| + }
|
| + return CPDF_Dest();
|
| }
|
| -CPDF_Action CPDF_Link::GetAction()
|
| -{
|
| - return CPDF_Action(m_pDict->GetDict("A"));
|
| +CPDF_Action CPDF_Link::GetAction() {
|
| + return CPDF_Action(m_pDict->GetDict("A"));
|
| }
|
|
|