summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/fpdfapi/font/cpdf_font.h5
-rw-r--r--core/fpdfapi/font/cpdf_type3font.cpp2
-rw-r--r--core/fpdfapi/page/cpdf_pattern.h9
-rw-r--r--core/fpdfapi/page/cpdf_textstate.h3
-rw-r--r--core/fpdfapi/render/cpdf_transferfunc.h3
-rw-r--r--core/fpdfdoc/cpdf_bookmarktree.cpp4
-rw-r--r--core/fpdfdoc/cpdf_bookmarktree.h8
-rw-r--r--core/fpdfdoc/cpdf_docjsactions.cpp10
-rw-r--r--core/fpdfdoc/cpdf_docjsactions.h6
9 files changed, 32 insertions, 18 deletions
diff --git a/core/fpdfapi/font/cpdf_font.h b/core/fpdfapi/font/cpdf_font.h
index be1d91319e..c8e65e26a5 100644
--- a/core/fpdfapi/font/cpdf_font.h
+++ b/core/fpdfapi/font/cpdf_font.h
@@ -11,6 +11,7 @@
#include <vector>
#include "core/fpdfapi/parser/cpdf_stream_acc.h"
+#include "core/fxcrt/cfx_unowned_ptr.h"
#include "core/fxcrt/fx_string.h"
#include "core/fxcrt/fx_system.h"
#include "core/fxge/fx_font.h"
@@ -78,7 +79,7 @@ class CPDF_Font {
virtual int GetCharWidthF(uint32_t charcode) = 0;
virtual FX_RECT GetCharBBox(uint32_t charcode) = 0;
- CPDF_Document* GetDocument() { return m_pDocument; }
+ CPDF_Document* GetDocument() const { return m_pDocument.Get(); }
CFX_Font* GetFont() { return &m_Font; }
const CFX_Font* GetFont() const { return &m_Font; }
CFX_Font* GetFontFallback(int position);
@@ -101,7 +102,7 @@ class CPDF_Font {
const std::vector<CFX_ByteString>& charnames,
int charcode);
- CPDF_Document* m_pDocument;
+ CFX_UnownedPtr<CPDF_Document> m_pDocument;
CFX_Font m_Font;
std::vector<std::unique_ptr<CFX_Font>> m_FontFallbacks;
CFX_ByteString m_BaseFont;
diff --git a/core/fpdfapi/font/cpdf_type3font.cpp b/core/fpdfapi/font/cpdf_type3font.cpp
index 1e8c567a7f..b1ac99b0c3 100644
--- a/core/fpdfapi/font/cpdf_type3font.cpp
+++ b/core/fpdfapi/font/cpdf_type3font.cpp
@@ -107,7 +107,7 @@ CPDF_Type3Char* CPDF_Type3Font::LoadChar(uint32_t charcode) {
auto pNewChar =
pdfium::MakeUnique<CPDF_Type3Char>(pdfium::MakeUnique<CPDF_Form>(
- m_pDocument,
+ m_pDocument.Get(),
m_pFontResources ? m_pFontResources.Get() : m_pPageResources.Get(),
pStream, nullptr));
diff --git a/core/fpdfapi/page/cpdf_pattern.h b/core/fpdfapi/page/cpdf_pattern.h
index 3b948aedb7..dba301b922 100644
--- a/core/fpdfapi/page/cpdf_pattern.h
+++ b/core/fpdfapi/page/cpdf_pattern.h
@@ -7,6 +7,7 @@
#ifndef CORE_FPDFAPI_PAGE_CPDF_PATTERN_H_
#define CORE_FPDFAPI_PAGE_CPDF_PATTERN_H_
+#include "core/fxcrt/cfx_unowned_ptr.h"
#include "core/fxcrt/fx_coordinates.h"
#include "core/fxcrt/fx_system.h"
@@ -25,8 +26,8 @@ class CPDF_Pattern {
virtual CPDF_ShadingPattern* AsShadingPattern() = 0;
// All the getters that return pointers return non-NULL pointers.
- CPDF_Document* document() { return m_pDocument; }
- CPDF_Object* pattern_obj() { return m_pPatternObj; }
+ CPDF_Document* document() const { return m_pDocument.Get(); }
+ CPDF_Object* pattern_obj() const { return m_pPatternObj.Get(); }
CFX_Matrix* pattern_to_form() { return &m_Pattern2Form; }
const CFX_Matrix& parent_matrix() const { return m_ParentMatrix; }
@@ -38,8 +39,8 @@ class CPDF_Pattern {
void SetPatternToFormMatrix();
private:
- CPDF_Document* const m_pDocument;
- CPDF_Object* const m_pPatternObj;
+ CFX_UnownedPtr<CPDF_Document> const m_pDocument;
+ CFX_UnownedPtr<CPDF_Object> const m_pPatternObj;
CFX_Matrix m_Pattern2Form;
const CFX_Matrix m_ParentMatrix;
};
diff --git a/core/fpdfapi/page/cpdf_textstate.h b/core/fpdfapi/page/cpdf_textstate.h
index 84d2c13a6c..ff3ab8dd6c 100644
--- a/core/fpdfapi/page/cpdf_textstate.h
+++ b/core/fpdfapi/page/cpdf_textstate.h
@@ -8,6 +8,7 @@
#define CORE_FPDFAPI_PAGE_CPDF_TEXTSTATE_H_
#include "core/fxcrt/cfx_shared_copy_on_write.h"
+#include "core/fxcrt/cfx_unowned_ptr.h"
#include "core/fxcrt/fx_basic.h"
class CPDF_Document;
@@ -72,7 +73,7 @@ class CPDF_TextState {
float GetShearAngle() const;
CPDF_Font* m_pFont;
- CPDF_Document* m_pDocument;
+ CFX_UnownedPtr<CPDF_Document> m_pDocument;
float m_FontSize;
float m_CharSpace;
float m_WordSpace;
diff --git a/core/fpdfapi/render/cpdf_transferfunc.h b/core/fpdfapi/render/cpdf_transferfunc.h
index 82e7a39037..ad7bf28c2f 100644
--- a/core/fpdfapi/render/cpdf_transferfunc.h
+++ b/core/fpdfapi/render/cpdf_transferfunc.h
@@ -8,6 +8,7 @@
#define CORE_FPDFAPI_RENDER_CPDF_TRANSFERFUNC_H_
#include "core/fxcrt/cfx_retain_ptr.h"
+#include "core/fxcrt/cfx_unowned_ptr.h"
#include "core/fxge/fx_dib.h"
class CPDF_Document;
@@ -22,7 +23,7 @@ class CPDF_TransferFunc : public CFX_Retainable {
CFX_RetainPtr<CFX_DIBSource> TranslateImage(
const CFX_RetainPtr<CFX_DIBSource>& pSrc);
- CPDF_Document* const m_pPDFDoc;
+ CFX_UnownedPtr<CPDF_Document> const m_pPDFDoc;
bool m_bIdentity;
uint8_t m_Samples[256 * 3];
diff --git a/core/fpdfdoc/cpdf_bookmarktree.cpp b/core/fpdfdoc/cpdf_bookmarktree.cpp
index 2a4314547c..b5dfe4f45f 100644
--- a/core/fpdfdoc/cpdf_bookmarktree.cpp
+++ b/core/fpdfdoc/cpdf_bookmarktree.cpp
@@ -8,6 +8,10 @@
#include "core/fpdfapi/parser/cpdf_document.h"
+CPDF_BookmarkTree::CPDF_BookmarkTree(CPDF_Document* pDoc) : m_pDocument(pDoc) {}
+
+CPDF_BookmarkTree::~CPDF_BookmarkTree() {}
+
CPDF_Bookmark CPDF_BookmarkTree::GetFirstChild(
const CPDF_Bookmark& parent) const {
CPDF_Dictionary* pParentDict = parent.GetDict();
diff --git a/core/fpdfdoc/cpdf_bookmarktree.h b/core/fpdfdoc/cpdf_bookmarktree.h
index 7207357b1e..a854d6f4b1 100644
--- a/core/fpdfdoc/cpdf_bookmarktree.h
+++ b/core/fpdfdoc/cpdf_bookmarktree.h
@@ -8,19 +8,21 @@
#define CORE_FPDFDOC_CPDF_BOOKMARKTREE_H_
#include "core/fpdfdoc/cpdf_bookmark.h"
+#include "core/fxcrt/cfx_unowned_ptr.h"
class CPDF_Document;
class CPDF_BookmarkTree {
public:
- explicit CPDF_BookmarkTree(CPDF_Document* pDoc) : m_pDocument(pDoc) {}
+ explicit CPDF_BookmarkTree(CPDF_Document* pDoc);
+ ~CPDF_BookmarkTree();
CPDF_Bookmark GetFirstChild(const CPDF_Bookmark& parent) const;
CPDF_Bookmark GetNextSibling(const CPDF_Bookmark& bookmark) const;
- CPDF_Document* GetDocument() const { return m_pDocument; }
+ CPDF_Document* GetDocument() const { return m_pDocument.Get(); }
private:
- CPDF_Document* const m_pDocument;
+ CFX_UnownedPtr<CPDF_Document> const m_pDocument;
};
#endif // CORE_FPDFDOC_CPDF_BOOKMARKTREE_H_
diff --git a/core/fpdfdoc/cpdf_docjsactions.cpp b/core/fpdfdoc/cpdf_docjsactions.cpp
index c0e7a78fd6..59dbccce85 100644
--- a/core/fpdfdoc/cpdf_docjsactions.cpp
+++ b/core/fpdfdoc/cpdf_docjsactions.cpp
@@ -10,9 +10,11 @@
CPDF_DocJSActions::CPDF_DocJSActions(CPDF_Document* pDoc) : m_pDocument(pDoc) {}
+CPDF_DocJSActions::~CPDF_DocJSActions() {}
+
int CPDF_DocJSActions::CountJSActions() const {
ASSERT(m_pDocument);
- CPDF_NameTree name_tree(m_pDocument, "JavaScript");
+ CPDF_NameTree name_tree(m_pDocument.Get(), "JavaScript");
return name_tree.GetCount();
}
@@ -20,7 +22,7 @@ CPDF_Action CPDF_DocJSActions::GetJSActionAndName(
int index,
CFX_ByteString* csName) const {
ASSERT(m_pDocument);
- CPDF_NameTree name_tree(m_pDocument, "JavaScript");
+ CPDF_NameTree name_tree(m_pDocument.Get(), "JavaScript");
CPDF_Object* pAction = name_tree.LookupValueAndName(index, csName);
return ToDictionary(pAction) ? CPDF_Action(pAction->GetDict())
: CPDF_Action();
@@ -28,7 +30,7 @@ CPDF_Action CPDF_DocJSActions::GetJSActionAndName(
CPDF_Action CPDF_DocJSActions::GetJSAction(const CFX_ByteString& csName) const {
ASSERT(m_pDocument);
- CPDF_NameTree name_tree(m_pDocument, "JavaScript");
+ CPDF_NameTree name_tree(m_pDocument.Get(), "JavaScript");
CPDF_Object* pAction = name_tree.LookupValue(csName);
return ToDictionary(pAction) ? CPDF_Action(pAction->GetDict())
: CPDF_Action();
@@ -36,6 +38,6 @@ CPDF_Action CPDF_DocJSActions::GetJSAction(const CFX_ByteString& csName) const {
int CPDF_DocJSActions::FindJSAction(const CFX_ByteString& csName) const {
ASSERT(m_pDocument);
- CPDF_NameTree name_tree(m_pDocument, "JavaScript");
+ CPDF_NameTree name_tree(m_pDocument.Get(), "JavaScript");
return name_tree.GetIndex(csName);
}
diff --git a/core/fpdfdoc/cpdf_docjsactions.h b/core/fpdfdoc/cpdf_docjsactions.h
index 16b6be3d69..328b8869f6 100644
--- a/core/fpdfdoc/cpdf_docjsactions.h
+++ b/core/fpdfdoc/cpdf_docjsactions.h
@@ -8,6 +8,7 @@
#define CORE_FPDFDOC_CPDF_DOCJSACTIONS_H_
#include "core/fpdfdoc/cpdf_action.h"
+#include "core/fxcrt/cfx_unowned_ptr.h"
#include "core/fxcrt/fx_string.h"
class CPDF_Document;
@@ -15,15 +16,16 @@ class CPDF_Document;
class CPDF_DocJSActions {
public:
explicit CPDF_DocJSActions(CPDF_Document* pDoc);
+ ~CPDF_DocJSActions();
int CountJSActions() const;
CPDF_Action GetJSActionAndName(int index, CFX_ByteString* csName) const;
CPDF_Action GetJSAction(const CFX_ByteString& csName) const;
int FindJSAction(const CFX_ByteString& csName) const;
- CPDF_Document* GetDocument() const { return m_pDocument; }
+ CPDF_Document* GetDocument() const { return m_pDocument.Get(); }
private:
- CPDF_Document* const m_pDocument;
+ CFX_UnownedPtr<CPDF_Document> const m_pDocument;
};
#endif // CORE_FPDFDOC_CPDF_DOCJSACTIONS_H_