Fix windows-specific usage of CFX_WideStr::operator LPCWSTR().
[pdfium.git] / fpdfsdk / src / fpdfdoc.cpp
index f21d5cf..52d88b2 100644 (file)
@@ -11,7 +11,7 @@ static int THISMODULE = 0;
 
 static CPDF_Bookmark FindBookmark(const CPDF_BookmarkTree& tree, CPDF_Bookmark bookmark, const CFX_WideString& title)
 {
-       if (bookmark && bookmark.GetTitle().CompareNoCase(title) == 0) {
+       if (bookmark && bookmark.GetTitle().CompareNoCase(title.c_str()) == 0) {
                // First check this item
                return bookmark;
        }
@@ -84,12 +84,12 @@ DLLEXPORT FPDF_DEST STDCALL FPDFBookmark_GetDest(FPDF_DOCUMENT document, FPDF_BO
        CPDF_Document* pDoc = (CPDF_Document*)document;
        CPDF_Dest dest = bookmark.GetDest(pDoc);
        if (dest)
-               return dest;
+               return dest.GetObject();
        // If this bookmark is not directly associated with a dest, we try to get action
        CPDF_Action action = bookmark.GetAction();
        if (!action)
                return NULL;
-       return action.GetDest(pDoc);
+       return action.GetDest(pDoc).GetObject();
 }
 
 DLLEXPORT FPDF_ACTION STDCALL FPDFBookmark_GetAction(FPDF_BOOKMARK pDict)
@@ -129,7 +129,7 @@ DLLEXPORT FPDF_DEST STDCALL FPDFAction_GetDest(FPDF_DOCUMENT document, FPDF_ACTI
                return NULL;
        CPDF_Document* pDoc = (CPDF_Document*)document;
        CPDF_Action action((CPDF_Dictionary*)pDict);
-       return action.GetDest(pDoc);
+       return action.GetDest(pDoc).GetObject();
 }
 
 DLLEXPORT unsigned long STDCALL FPDFAction_GetURIPath(FPDF_DOCUMENT document, FPDF_ACTION pDict,
@@ -155,7 +155,7 @@ DLLEXPORT unsigned long STDCALL FPDFDest_GetPageIndex(FPDF_DOCUMENT document, FP
        if (!pDict)
                return 0;
        CPDF_Document* pDoc = (CPDF_Document*)document;
-       CPDF_Dest dest = (CPDF_Array*)pDict;
+       CPDF_Dest dest((CPDF_Array*)pDict);
        return dest.GetPageIndex(pDoc);
 }
 
@@ -173,36 +173,35 @@ DLLEXPORT FPDF_LINK STDCALL FPDFLink_GetLinkAtPoint(FPDF_PAGE page, double x, do
        CPDF_Document* pDoc = pPage->m_pDocument;
        CPDF_LinkList* pLinkList = (CPDF_LinkList*)pDoc->GetPrivateData(&THISMODULE);
        if (!pLinkList) {
-               pLinkList = FX_NEW CPDF_LinkList(pDoc);
+               pLinkList = new CPDF_LinkList(pDoc);
                pDoc->SetPrivateData(&THISMODULE, pLinkList, ReleaseLinkList);
        }
-       return pLinkList->GetLinkAtPoint(pPage, (FX_FLOAT)x, (FX_FLOAT)y);
+       return pLinkList->GetLinkAtPoint(pPage, (FX_FLOAT)x, (FX_FLOAT)y).GetDict();
 }
 
 DLLEXPORT FPDF_DEST STDCALL FPDFLink_GetDest(FPDF_DOCUMENT document, FPDF_LINK pDict)
 {
        if (!document)
                return NULL;
-       CPDF_Document* pDoc = (CPDF_Document*)document;
        if (!pDict)
                return NULL;
-       CPDF_Link link = (CPDF_Dictionary*)pDict;
-
-       FPDF_DEST dest = link.GetDest(pDoc);
+       CPDF_Document* pDoc = (CPDF_Document*)document;
+       CPDF_Link link((CPDF_Dictionary*)pDict);
+       FPDF_DEST dest = link.GetDest(pDoc).GetObject();
        if (dest)
                return dest;
        // If this link is not directly associated with a dest, we try to get action
        CPDF_Action action = link.GetAction();
        if (!action)
                return NULL;
-       return action.GetDest(pDoc);
+       return action.GetDest(pDoc).GetObject();
 }
 
 DLLEXPORT FPDF_ACTION STDCALL FPDFLink_GetAction(FPDF_LINK pDict)
 {
        if (!pDict)
                return NULL;
-       CPDF_Link link = (CPDF_Dictionary*)pDict;
+       CPDF_Link link((CPDF_Dictionary*)pDict);
        return link.GetAction().GetDict();
 }