Remove FX_BSTR and FX_WSTR typedefs.
[pdfium.git] / core / src / fpdfapi / fpdf_page / fpdf_page.cpp
index 590a01a..688066e 100644 (file)
@@ -7,26 +7,25 @@
 #include "../../../include/fpdfapi/fpdf_page.h"
 #include "../../../include/fpdfapi/fpdf_module.h"
 #include "pageint.h"
-void CPDF_PageObject::Release()
-{
-    delete this;
-}
 CPDF_PageObject* CPDF_PageObject::Create(int type)
 {
     switch (type) {
         case PDFPAGE_TEXT:
-            return FX_NEW CPDF_TextObject;
+            return new CPDF_TextObject;
         case PDFPAGE_IMAGE:
-            return FX_NEW CPDF_ImageObject;
+            return new CPDF_ImageObject;
         case PDFPAGE_PATH:
-            return FX_NEW CPDF_PathObject;
+            return new CPDF_PathObject;
         case PDFPAGE_SHADING:
-            return FX_NEW CPDF_ShadingObject;
+            return new CPDF_ShadingObject;
         case PDFPAGE_FORM:
-            return FX_NEW CPDF_FormObject;
+            return new CPDF_FormObject;
     }
     return NULL;
 }
+CPDF_PageObject::~CPDF_PageObject()
+{
+}
 CPDF_PageObject* CPDF_PageObject::Clone() const
 {
     CPDF_PageObject* pObj = Create(m_Type);
@@ -114,7 +113,7 @@ CPDF_TextObject::~CPDF_TextObject()
 }
 void CPDF_TextObject::GetItemInfo(int index, CPDF_TextObjectItem* pInfo) const
 {
-    pInfo->m_CharCode = m_nChars == 1 ? (FX_DWORD)(FX_UINTPTR)m_pCharCodes : m_pCharCodes[index];
+    pInfo->m_CharCode = m_nChars == 1 ? (FX_DWORD)(uintptr_t)m_pCharCodes : m_pCharCodes[index];
     pInfo->m_OriginX = index ? m_pCharPos[index - 1] : 0;
     pInfo->m_OriginY = 0;
     if (pInfo->m_CharCode == -1) {
@@ -151,7 +150,7 @@ int CPDF_TextObject::CountChars() const
 void CPDF_TextObject::GetCharInfo(int index, FX_DWORD& charcode, FX_FLOAT& kerning) const
 {
     if (m_nChars == 1) {
-        charcode = (FX_DWORD)(FX_UINTPTR)m_pCharCodes;
+        charcode = (FX_DWORD)(uintptr_t)m_pCharCodes;
         kerning = 0;
         return;
     }
@@ -205,11 +204,10 @@ void CPDF_TextObject::CopyData(const CPDF_PageObject* pSrc)
     if (m_nChars > 1) {
         m_pCharCodes = FX_Alloc(FX_DWORD, m_nChars);
         m_pCharPos = FX_Alloc(FX_FLOAT, m_nChars - 1);
-        int i;
-        for (i = 0; i < m_nChars; i ++) {
+        for (int i = 0; i < m_nChars; i ++) {
             m_pCharCodes[i] = pSrcObj->m_pCharCodes[i];
         }
-        for (i = 0; i < m_nChars - 1; i ++) {
+        for (int i = 0; i < m_nChars - 1; i ++) {
             m_pCharPos[i] = pSrcObj->m_pCharPos[i];
         }
     } else {
@@ -244,10 +242,10 @@ void CPDF_TextObject::SetSegments(const CFX_ByteString* pStrs, FX_FLOAT* pKernin
         m_pCharPos = FX_Alloc(FX_FLOAT, m_nChars - 1);
         int index = 0;
         for (int i = 0; i < nsegs; i ++) {
-            FX_LPCSTR segment = pStrs[i];
+            const FX_CHAR* segment = pStrs[i];
             int offset = 0, len = pStrs[i].GetLength();
             while (offset < len) {
-                m_pCharCodes[index++] = pFont->GetNextChar(segment, offset);
+                m_pCharCodes[index++] = pFont->GetNextChar(segment, len, offset);
             }
             if (i != nsegs - 1) {
                 m_pCharPos[index - 1] = pKerning[i];
@@ -256,7 +254,7 @@ void CPDF_TextObject::SetSegments(const CFX_ByteString* pStrs, FX_FLOAT* pKernin
         }
     } else {
         int offset = 0;
-        m_pCharCodes = (FX_DWORD*)(FX_UINTPTR)pFont->GetNextChar(pStrs[0], offset);
+        m_pCharCodes = (FX_DWORD*)(uintptr_t)pFont->GetNextChar(pStrs[0], pStrs[0].GetLength(), offset);
     }
 }
 void CPDF_TextObject::SetText(const CFX_ByteString& str)
@@ -313,7 +311,7 @@ void CPDF_TextObject::SetText(int nChars, FX_DWORD* pCharCodes, FX_FLOAT* pKerni
             }
         }
     } else {
-        m_pCharCodes = (FX_DWORD*)(FX_UINTPTR)pCharCodes[0];
+        m_pCharCodes = (FX_DWORD*)(uintptr_t)pCharCodes[0];
     }
     RecalcPositionData();
 }
@@ -362,7 +360,7 @@ void CPDF_TextObject::GetCharRect(int index, CFX_FloatRect& rect) const
     FX_FLOAT fontsize = m_TextState.GetFontSize() / 1000;
     int count = 0;
     for (int i = 0; i < m_nChars; i ++) {
-        FX_DWORD charcode = m_nChars == 1 ? (FX_DWORD)(FX_UINTPTR)m_pCharCodes : m_pCharCodes[i];
+        FX_DWORD charcode = m_nChars == 1 ? (FX_DWORD)(uintptr_t)m_pCharCodes : m_pCharCodes[i];
         if (charcode == (FX_DWORD) - 1) {
             continue;
         }
@@ -406,7 +404,7 @@ void CPDF_TextObject::CalcPositionData(FX_FLOAT* pTextAdvanceX, FX_FLOAT* pTextA
     }
     FX_FLOAT fontsize = m_TextState.GetFontSize();
     for (int i = 0; i < m_nChars; i ++) {
-        FX_DWORD charcode = m_nChars == 1 ? (FX_DWORD)(FX_UINTPTR)m_pCharCodes : m_pCharCodes[i];
+        FX_DWORD charcode = m_nChars == 1 ? (FX_DWORD)(uintptr_t)m_pCharCodes : m_pCharCodes[i];
         if (charcode == (FX_DWORD) - 1) {
             curpos -= FXSYS_Mul(m_pCharPos[i - 1], fontsize) / 1000;
             continue;
@@ -533,7 +531,7 @@ void CPDF_TextObject::CalcCharPos(FX_FLOAT* pPosArray) const
     FX_FLOAT fontsize = m_TextState.GetFontSize();
     int index = 0;
     for (int i = 0; i < m_nChars; i ++) {
-        FX_DWORD charcode = m_nChars == 1 ? (FX_DWORD)(FX_UINTPTR)m_pCharCodes : m_pCharCodes[i];
+        FX_DWORD charcode = m_nChars == 1 ? (FX_DWORD)(uintptr_t)m_pCharCodes : m_pCharCodes[i];
         if (charcode == (FX_DWORD) - 1) {
             continue;
         }
@@ -585,7 +583,7 @@ void CPDF_TextObject::SetData(int nChars, FX_DWORD* pCharCodes, FX_FLOAT* pCharP
         return;
     }
     if (nChars == 1) {
-        m_pCharCodes = (FX_DWORD*)(FX_UINTPTR) * pCharCodes;
+        m_pCharCodes = (FX_DWORD*)(uintptr_t) * pCharCodes;
     } else {
         m_pCharCodes = FX_Alloc(FX_DWORD, nChars);
         FXSYS_memcpy32(m_pCharCodes, pCharCodes, sizeof(FX_DWORD)*nChars);
@@ -689,11 +687,7 @@ CPDF_PageObjects::~CPDF_PageObjects()
     }
     FX_POSITION pos = m_ObjectList.GetHeadPosition();
     while (pos) {
-        CPDF_PageObject* pPageObj = (CPDF_PageObject*)m_ObjectList.GetNext(pos);
-        if (!pPageObj) {
-            continue;
-        }
-        pPageObj->Release();
+        delete (CPDF_PageObject*)m_ObjectList.GetNext(pos);
     }
 }
 void CPDF_PageObjects::ContinueParse(IFX_Pause* pPause)
@@ -808,11 +802,7 @@ void CPDF_PageObjects::ClearCacheObjects()
     if (m_bReleaseMembers) {
         FX_POSITION pos = m_ObjectList.GetHeadPosition();
         while (pos) {
-            CPDF_PageObject* pPageObj = (CPDF_PageObject*)m_ObjectList.GetNext(pos);
-            if (!pPageObj) {
-                continue;
-            }
-            pPageObj->Release();
+            delete (CPDF_PageObject*)m_ObjectList.GetNext(pos);
         }
     }
     m_ObjectList.RemoveAll();
@@ -896,7 +886,7 @@ void CPDF_Page::StartParse(CPDF_ParseOptions* pOptions, FX_BOOL bReParse)
     if (m_ParseState == PDF_CONTENT_PARSED || m_ParseState == PDF_CONTENT_PARSING) {
         return;
     }
-    m_pParser = FX_NEW CPDF_ContentParser;
+    m_pParser = new CPDF_ContentParser;
     m_pParser->Start(this, pOptions);
     m_ParseState = PDF_CONTENT_PARSING;
 }
@@ -912,7 +902,7 @@ CPDF_Page::~CPDF_Page()
         pModule->DestroyPageCache(m_pPageRender);
     }
 }
-CPDF_Object* FPDFAPI_GetPageAttr(CPDF_Dictionary* pPageDict, FX_BSTR name)
+CPDF_Object* FPDFAPI_GetPageAttr(CPDF_Dictionary* pPageDict, const CFX_ByteStringC& name)
 {
     int level = 0;
     while (1) {
@@ -931,7 +921,7 @@ CPDF_Object* FPDFAPI_GetPageAttr(CPDF_Dictionary* pPageDict, FX_BSTR name)
         }
     }
 }
-CPDF_Object* CPDF_Page::GetPageAttr(FX_BSTR name) const
+CPDF_Object* CPDF_Page::GetPageAttr(const CFX_ByteStringC& name) const
 {
     return FPDFAPI_GetPageAttr(m_pFormDict, name);
 }
@@ -960,7 +950,7 @@ void CPDF_Form::StartParse(CPDF_AllStates* pGraphicStates, CFX_AffineMatrix* pPa
     if (m_ParseState == PDF_CONTENT_PARSED || m_ParseState == PDF_CONTENT_PARSING) {
         return;
     }
-    m_pParser = FX_NEW CPDF_ContentParser;
+    m_pParser = new CPDF_ContentParser;
     m_pParser->Start(this, pGraphicStates, pParentMatrix, pType3Char, pOptions, level);
     m_ParseState = PDF_CONTENT_PARSING;
 }
@@ -972,7 +962,7 @@ void CPDF_Form::ParseContent(CPDF_AllStates* pGraphicStates, CFX_AffineMatrix* p
 }
 CPDF_Form* CPDF_Form::Clone() const
 {
-    CPDF_Form* pClone = FX_NEW CPDF_Form(m_pDocument, m_pPageResources, m_pFormStream, m_pResources);
+    CPDF_Form* pClone = new CPDF_Form(m_pDocument, m_pPageResources, m_pFormStream, m_pResources);
     FX_POSITION pos = m_ObjectList.GetHeadPosition();
     while (pos) {
         CPDF_PageObject* pObj = (CPDF_PageObject*)m_ObjectList.GetNext(pos);