diff options
-rw-r--r-- | core/fpdfdoc/cpdf_nametree.cpp | 12 | ||||
-rw-r--r-- | core/fpdfdoc/cpdf_nametree.h | 8 | ||||
-rw-r--r-- | core/fpdfdoc/cpdf_structelement.h | 3 | ||||
-rw-r--r-- | core/fpdfdoc/cpdf_structtree.h | 13 | ||||
-rw-r--r-- | core/fpdfdoc/cpvt_fontmap.cpp | 16 | ||||
-rw-r--r-- | core/fpdfdoc/cpvt_fontmap.h | 9 | ||||
-rw-r--r-- | core/fpdftext/cpdf_textpage.cpp | 6 | ||||
-rw-r--r-- | core/fpdftext/cpdf_textpage.h | 9 | ||||
-rw-r--r-- | core/fpdftext/cpdf_textpagefind.cpp | 2 | ||||
-rw-r--r-- | core/fpdftext/cpdf_textpagefind.h | 3 |
10 files changed, 45 insertions, 36 deletions
diff --git a/core/fpdfdoc/cpdf_nametree.cpp b/core/fpdfdoc/cpdf_nametree.cpp index 5ecdb4863b..b3808bddba 100644 --- a/core/fpdfdoc/cpdf_nametree.cpp +++ b/core/fpdfdoc/cpdf_nametree.cpp @@ -136,6 +136,8 @@ size_t CountNames(CPDF_Dictionary* pNode, int nLevel = 0) { } // namespace +CPDF_NameTree::CPDF_NameTree(CPDF_Dictionary* pRoot) : m_pRoot(pRoot) {} + CPDF_NameTree::CPDF_NameTree(CPDF_Document* pDoc, const CFX_ByteString& category) : m_pRoot(nullptr) { @@ -150,8 +152,10 @@ CPDF_NameTree::CPDF_NameTree(CPDF_Document* pDoc, m_pRoot = pNames->GetDictFor(category); } +CPDF_NameTree::~CPDF_NameTree() {} + size_t CPDF_NameTree::GetCount() const { - return m_pRoot ? ::CountNames(m_pRoot) : 0; + return m_pRoot ? ::CountNames(m_pRoot.Get()) : 0; } int CPDF_NameTree::GetIndex(const CFX_ByteString& csName) const { @@ -159,7 +163,7 @@ int CPDF_NameTree::GetIndex(const CFX_ByteString& csName) const { return -1; size_t nIndex = 0; - if (!SearchNameNode(m_pRoot, csName, nIndex, nullptr)) + if (!SearchNameNode(m_pRoot.Get(), csName, nIndex, nullptr)) return -1; return nIndex; } @@ -171,7 +175,7 @@ CPDF_Object* CPDF_NameTree::LookupValueAndName(int nIndex, return nullptr; size_t nCurIndex = 0; - return SearchNameNode(m_pRoot, nIndex, nCurIndex, csName, nullptr); + return SearchNameNode(m_pRoot.Get(), nIndex, nCurIndex, csName, nullptr); } CPDF_Object* CPDF_NameTree::LookupValue(const CFX_ByteString& csName) const { @@ -179,7 +183,7 @@ CPDF_Object* CPDF_NameTree::LookupValue(const CFX_ByteString& csName) const { return nullptr; size_t nIndex = 0; - return SearchNameNode(m_pRoot, csName, nIndex, nullptr); + return SearchNameNode(m_pRoot.Get(), csName, nIndex, nullptr); } CPDF_Array* CPDF_NameTree::LookupNamedDest(CPDF_Document* pDoc, diff --git a/core/fpdfdoc/cpdf_nametree.h b/core/fpdfdoc/cpdf_nametree.h index 7a792aef59..69000f32b2 100644 --- a/core/fpdfdoc/cpdf_nametree.h +++ b/core/fpdfdoc/cpdf_nametree.h @@ -7,6 +7,7 @@ #ifndef CORE_FPDFDOC_CPDF_NAMETREE_H_ #define CORE_FPDFDOC_CPDF_NAMETREE_H_ +#include "core/fxcrt/cfx_unowned_ptr.h" #include "core/fxcrt/fx_string.h" class CPDF_Array; @@ -16,8 +17,9 @@ class CPDF_Object; class CPDF_NameTree { public: - explicit CPDF_NameTree(CPDF_Dictionary* pRoot) : m_pRoot(pRoot) {} + explicit CPDF_NameTree(CPDF_Dictionary* pRoot); CPDF_NameTree(CPDF_Document* pDoc, const CFX_ByteString& category); + ~CPDF_NameTree(); CPDF_Object* LookupValueAndName(int nIndex, CFX_ByteString* csName) const; CPDF_Object* LookupValue(const CFX_ByteString& csName) const; @@ -25,10 +27,10 @@ class CPDF_NameTree { int GetIndex(const CFX_ByteString& csName) const; size_t GetCount() const; - CPDF_Dictionary* GetRoot() const { return m_pRoot; } + CPDF_Dictionary* GetRoot() const { return m_pRoot.Get(); } private: - CPDF_Dictionary* m_pRoot; + CFX_UnownedPtr<CPDF_Dictionary> m_pRoot; }; #endif // CORE_FPDFDOC_CPDF_NAMETREE_H_ diff --git a/core/fpdfdoc/cpdf_structelement.h b/core/fpdfdoc/cpdf_structelement.h index c65363db53..d8820a141c 100644 --- a/core/fpdfdoc/cpdf_structelement.h +++ b/core/fpdfdoc/cpdf_structelement.h @@ -10,6 +10,7 @@ #include <vector> #include "core/fxcrt/cfx_retain_ptr.h" +#include "core/fxcrt/cfx_unowned_ptr.h" #include "core/fxcrt/fx_string.h" #include "core/fxge/fx_dib.h" @@ -27,7 +28,7 @@ class CPDF_StructKid { enum { Invalid, Element, PageContent, StreamContent, Object } m_Type; CFX_RetainPtr<CPDF_StructElement> m_pElement; // For Element. - CPDF_Dictionary* m_pDict; // For Element. + CFX_UnownedPtr<CPDF_Dictionary> m_pDict; // For Element. uint32_t m_PageObjNum; // For PageContent, StreamContent, Object. uint32_t m_RefObjNum; // For StreamContent, Object. uint32_t m_ContentId; // For PageContent, StreamContent. diff --git a/core/fpdfdoc/cpdf_structtree.h b/core/fpdfdoc/cpdf_structtree.h index aa30f802db..037512acfc 100644 --- a/core/fpdfdoc/cpdf_structtree.h +++ b/core/fpdfdoc/cpdf_structtree.h @@ -12,6 +12,7 @@ #include <vector> #include "core/fxcrt/cfx_retain_ptr.h" +#include "core/fxcrt/cfx_unowned_ptr.h" class CPDF_Dictionary; class CPDF_Document; @@ -28,9 +29,9 @@ class CPDF_StructTree { int CountTopElements() const; CPDF_StructElement* GetTopElement(int i) const; - const CPDF_Dictionary* GetRoleMap() const { return m_pRoleMap; } - const CPDF_Dictionary* GetPage() const { return m_pPage; } - const CPDF_Dictionary* GetTreeRoot() const { return m_pTreeRoot; } + const CPDF_Dictionary* GetRoleMap() const { return m_pRoleMap.Get(); } + const CPDF_Dictionary* GetPage() const { return m_pPage.Get(); } + const CPDF_Dictionary* GetTreeRoot() const { return m_pTreeRoot.Get(); } private: void LoadPageTree(const CPDF_Dictionary* pPageDict); @@ -41,9 +42,9 @@ class CPDF_StructTree { bool AddTopLevelNode(CPDF_Dictionary* pDict, const CFX_RetainPtr<CPDF_StructElement>& pElement); - const CPDF_Dictionary* const m_pTreeRoot; - const CPDF_Dictionary* const m_pRoleMap; - const CPDF_Dictionary* m_pPage; + CFX_UnownedPtr<const CPDF_Dictionary> const m_pTreeRoot; + CFX_UnownedPtr<const CPDF_Dictionary> const m_pRoleMap; + CFX_UnownedPtr<const CPDF_Dictionary> m_pPage; std::vector<CFX_RetainPtr<CPDF_StructElement>> m_Kids; }; diff --git a/core/fpdfdoc/cpvt_fontmap.cpp b/core/fpdfdoc/cpvt_fontmap.cpp index c6e1a85dae..0edabd1bc3 100644 --- a/core/fpdfdoc/cpvt_fontmap.cpp +++ b/core/fpdfdoc/cpvt_fontmap.cpp @@ -21,9 +21,7 @@ CPVT_FontMap::CPVT_FontMap(CPDF_Document* pDoc, : m_pDocument(pDoc), m_pResDict(pResDict), m_pDefFont(pDefFont), - m_sDefFontAlias(sDefFontAlias), - m_pSysFont(nullptr), - m_sSysFontAlias() {} + m_sDefFontAlias(sDefFontAlias) {} CPVT_FontMap::~CPVT_FontMap() {} @@ -49,13 +47,13 @@ CPDF_Font* CPVT_FontMap::GetAnnotSysPDFFont(CPDF_Document* pDoc, CPDF_Font* CPVT_FontMap::GetPDFFont(int32_t nFontIndex) { switch (nFontIndex) { case 0: - return m_pDefFont; + return m_pDefFont.Get(); case 1: if (!m_pSysFont) { - m_pSysFont = - GetAnnotSysPDFFont(m_pDocument, m_pResDict, &m_sSysFontAlias); + m_pSysFont = GetAnnotSysPDFFont(m_pDocument.Get(), m_pResDict.Get(), + &m_sSysFontAlias); } - return m_pSysFont; + return m_pSysFont.Get(); default: return nullptr; } @@ -67,8 +65,8 @@ CFX_ByteString CPVT_FontMap::GetPDFFontAlias(int32_t nFontIndex) { return m_sDefFontAlias; case 1: if (!m_pSysFont) { - m_pSysFont = - GetAnnotSysPDFFont(m_pDocument, m_pResDict, &m_sSysFontAlias); + m_pSysFont = GetAnnotSysPDFFont(m_pDocument.Get(), m_pResDict.Get(), + &m_sSysFontAlias); } return m_sSysFontAlias; default: diff --git a/core/fpdfdoc/cpvt_fontmap.h b/core/fpdfdoc/cpvt_fontmap.h index 6080010cac..da69463d95 100644 --- a/core/fpdfdoc/cpvt_fontmap.h +++ b/core/fpdfdoc/cpvt_fontmap.h @@ -10,6 +10,7 @@ #include <stdint.h> #include "core/fpdfdoc/ipvt_fontmap.h" +#include "core/fxcrt/cfx_unowned_ptr.h" #include "core/fxcrt/fx_string.h" class CPDF_Document; @@ -38,11 +39,11 @@ class CPVT_FontMap : public IPVT_FontMap { CFX_ByteString* sSysFontAlias); private: - CPDF_Document* const m_pDocument; - const CPDF_Dictionary* const m_pResDict; - CPDF_Font* const m_pDefFont; + CFX_UnownedPtr<CPDF_Document> const m_pDocument; + CFX_UnownedPtr<CPDF_Dictionary> const m_pResDict; + CFX_UnownedPtr<CPDF_Font> const m_pDefFont; + CFX_UnownedPtr<CPDF_Font> m_pSysFont; const CFX_ByteString m_sDefFontAlias; - CPDF_Font* m_pSysFont; CFX_ByteString m_sSysFontAlias; }; diff --git a/core/fpdftext/cpdf_textpage.cpp b/core/fpdftext/cpdf_textpage.cpp index 5a39281183..7a493c004d 100644 --- a/core/fpdftext/cpdf_textpage.cpp +++ b/core/fpdftext/cpdf_textpage.cpp @@ -248,10 +248,10 @@ std::vector<CFX_FloatRect> CPDF_TextPage::GetRectArray(int start, continue; } if (!pCurObj) - pCurObj = info_curchar.m_pTextObj; + pCurObj = info_curchar.m_pTextObj.Get(); if (pCurObj != info_curchar.m_pTextObj) { rectArray.push_back(rect); - pCurObj = info_curchar.m_pTextObj; + pCurObj = info_curchar.m_pTextObj.Get(); bFlagNewRect = true; } if (bFlagNewRect) { @@ -1250,7 +1250,7 @@ CPDF_TextPage::GenerateCharacter CPDF_TextPage::ProcessInsertObject( FindPreviousTextObject(); TextOrientation WritingMode = GetTextObjectWritingMode(pObj); if (WritingMode == TextOrientation::Unknown) - WritingMode = GetTextObjectWritingMode(m_pPreTextObj); + WritingMode = GetTextObjectWritingMode(m_pPreTextObj.Get()); CFX_FloatRect this_rect = pObj->GetRect(); CFX_FloatRect prev_rect = m_pPreTextObj->GetRect(); diff --git a/core/fpdftext/cpdf_textpage.h b/core/fpdftext/cpdf_textpage.h index d7e29edf3b..a18310667d 100644 --- a/core/fpdftext/cpdf_textpage.h +++ b/core/fpdftext/cpdf_textpage.h @@ -11,6 +11,7 @@ #include <vector> #include "core/fpdfapi/page/cpdf_pageobjectlist.h" +#include "core/fxcrt/cfx_unowned_ptr.h" #include "core/fxcrt/fx_basic.h" #include "core/fxcrt/fx_coordinates.h" #include "core/fxcrt/fx_string.h" @@ -57,7 +58,7 @@ class FPDF_CHAR_INFO { float m_FontSize; CFX_PointF m_Origin; CFX_FloatRect m_CharBox; - CPDF_TextObject* m_pTextObj; + CFX_UnownedPtr<CPDF_TextObject> m_pTextObj; CFX_Matrix m_Matrix; }; @@ -78,7 +79,7 @@ class PAGECHAR_INFO { int32_t m_Flag; CFX_PointF m_Origin; CFX_FloatRect m_CharBox; - CPDF_TextObject* m_pTextObj; + CFX_UnownedPtr<CPDF_TextObject> m_pTextObj; CFX_Matrix m_Matrix; }; @@ -162,14 +163,14 @@ class CPDF_TextPage { const CPDF_Font* pFont, int nItems) const; - const CPDF_Page* const m_pPage; + CFX_UnownedPtr<const CPDF_Page> const m_pPage; std::vector<uint16_t> m_CharIndex; std::deque<PAGECHAR_INFO> m_CharList; std::deque<PAGECHAR_INFO> m_TempCharList; CFX_WideTextBuf m_TextBuf; CFX_WideTextBuf m_TempTextBuf; const FPDFText_Direction m_parserflag; - CPDF_TextObject* m_pPreTextObj; + CFX_UnownedPtr<CPDF_TextObject> m_pPreTextObj; CFX_Matrix m_perMatrix; bool m_bIsParsed; CFX_Matrix m_DisplayMatrix; diff --git a/core/fpdftext/cpdf_textpagefind.cpp b/core/fpdftext/cpdf_textpagefind.cpp index a4f4a6e828..058c293ac1 100644 --- a/core/fpdftext/cpdf_textpagefind.cpp +++ b/core/fpdftext/cpdf_textpagefind.cpp @@ -237,7 +237,7 @@ bool CPDF_TextPageFind::FindPrev() { m_IsFind = false; return m_IsFind; } - CPDF_TextPageFind findEngine(m_pTextPage); + CPDF_TextPageFind findEngine(m_pTextPage.Get()); bool ret = findEngine.FindFirst(m_findWhat, m_flags); if (!ret) { m_IsFind = false; diff --git a/core/fpdftext/cpdf_textpagefind.h b/core/fpdftext/cpdf_textpagefind.h index dd509018bd..ed0620605a 100644 --- a/core/fpdftext/cpdf_textpagefind.h +++ b/core/fpdftext/cpdf_textpagefind.h @@ -9,6 +9,7 @@ #include <vector> +#include "core/fxcrt/cfx_unowned_ptr.h" #include "core/fxcrt/fx_coordinates.h" #include "core/fxcrt/fx_string.h" #include "core/fxcrt/fx_system.h" @@ -40,7 +41,7 @@ class CPDF_TextPageFind { private: std::vector<uint16_t> m_CharIndex; - const CPDF_TextPage* m_pTextPage; + CFX_UnownedPtr<const CPDF_TextPage> m_pTextPage; CFX_WideString m_strText; CFX_WideString m_findWhat; int m_flags; |