summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/fpdfapi/font/font_int.h2
-rw-r--r--core/fpdfapi/page/cpdf_iccprofile.h5
-rw-r--r--core/fpdfapi/page/cpdf_meshstream.h4
-rw-r--r--core/fpdfapi/parser/cpdf_stream_acc.h4
-rw-r--r--core/fpdfapi/render/cpdf_pagerendercache.h5
-rw-r--r--core/fpdfapi/render/cpdf_progressiverenderer.cpp5
-rw-r--r--core/fpdfapi/render/cpdf_progressiverenderer.h4
-rw-r--r--core/fpdfapi/render/cpdf_renderstatus.cpp4
-rw-r--r--core/fpdfapi/render/cpdf_type3cache.h2
-rw-r--r--core/fpdfdoc/cpdf_aaction.cpp8
-rw-r--r--core/fpdfdoc/cpdf_aaction.h10
-rw-r--r--core/fpdfdoc/cpdf_action.cpp8
-rw-r--r--core/fpdfdoc/cpdf_action.h10
-rw-r--r--core/fpdfdoc/cpdf_actionfields.cpp5
-rw-r--r--core/fpdfdoc/cpdf_actionfields.h7
-rw-r--r--core/fpdfdoc/cpdf_annot.cpp20
-rw-r--r--core/fpdfdoc/cpdf_annot.h4
-rw-r--r--core/fpdfdoc/cpdf_apsettings.cpp4
-rw-r--r--core/fpdfdoc/cpdf_apsettings.h5
-rw-r--r--core/fpdfdoc/cpdf_formcontrol.cpp8
-rw-r--r--core/fpdfdoc/cpdf_formcontrol.h9
-rw-r--r--core/fpdfdoc/cpdf_formfield.cpp2
-rw-r--r--core/fpdfdoc/cpdf_iconfit.cpp6
-rw-r--r--core/fpdfdoc/cpdf_iconfit.h9
-rw-r--r--core/fpdfdoc/cpdf_interform.cpp2
-rw-r--r--core/fpdfdoc/cpdf_interform.h2
-rw-r--r--core/fpdfdoc/cpdf_numbertree.cpp6
-rw-r--r--core/fpdfdoc/cpdf_numbertree.h7
-rw-r--r--core/fpdfdoc/cpdf_occontext.cpp2
-rw-r--r--core/fpdfdoc/cpdf_occontext.h2
-rw-r--r--core/fpdfdoc/cpdf_pagelabel.cpp2
-rw-r--r--core/fpdfdoc/cpdf_pagelabel.h3
-rw-r--r--core/fpdfdoc/cpdf_structelement.cpp2
-rw-r--r--core/fpdfdoc/cpdf_structelement.h8
-rw-r--r--core/fpdfdoc/cpdf_variabletext.h2
-rw-r--r--core/fpdfdoc/csection.h2
-rw-r--r--core/fpdfdoc/ctypeset.h2
-rw-r--r--core/fpdftext/cpdf_linkextract.h2
-rw-r--r--core/fxcodec/codec/cjpx_decoder.h3
-rw-r--r--core/fxcodec/jbig2/JBig2_ArithDecoder.h4
-rw-r--r--core/fxcodec/jbig2/JBig2_Context.h2
-rw-r--r--core/fxcodec/jbig2/JBig2_HuffmanDecoder.h2
-rw-r--r--core/fxcrt/xml/cxml_element.h4
-rw-r--r--core/fxge/cfx_fontmapper.h2
-rw-r--r--core/fxge/dib/cfx_imagestretcher.cpp4
-rw-r--r--core/fxge/dib/cfx_imagestretcher.h2
-rw-r--r--core/fxge/dib/cfx_imagetransformer.h2
-rw-r--r--fpdfsdk/cpdfsdk_baannot.cpp2
-rw-r--r--fpdfsdk/cpdfsdk_baannot.h2
-rw-r--r--fpdfsdk/cpdfsdk_widget.h4
-rw-r--r--fpdfsdk/fpdfxfa/cpdfxfa_page.h5
-rw-r--r--fpdfsdk/fsdk_pauseadapter.cpp2
-rw-r--r--fpdfsdk/fsdk_pauseadapter.h2
-rw-r--r--fpdfsdk/javascript/Document.cpp2
-rw-r--r--fpdfsdk/javascript/JS_Object.h4
-rw-r--r--fpdfsdk/javascript/JS_Value.cpp42
-rw-r--r--fpdfsdk/javascript/JS_Value.h4
-rw-r--r--fpdfsdk/pdfwindow/PWL_FontMap.h2
-rw-r--r--fxbarcode/common/reedsolomon/BC_ReedSolomon.cpp6
-rw-r--r--fxbarcode/common/reedsolomon/BC_ReedSolomon.h2
-rw-r--r--xfa/fde/cfde_txtedtpage.cpp2
-rw-r--r--xfa/fde/cfde_txtedtpage.h2
-rw-r--r--xfa/fde/cfde_txtedttextset.cpp4
-rw-r--r--xfa/fde/cfde_txtedttextset.h2
-rw-r--r--xfa/fde/css/cfde_cssstyleselector.cpp2
-rw-r--r--xfa/fde/css/cfde_cssstyleselector.h2
-rw-r--r--xfa/fwl/cfwl_app.h4
-rw-r--r--xfa/fwl/cfwl_combobox.cpp21
-rw-r--r--xfa/fwl/cfwl_datetimepicker.cpp10
-rw-r--r--xfa/fwl/cfwl_edit.cpp8
-rw-r--r--xfa/fwl/cfwl_listbox.cpp8
-rw-r--r--xfa/fwl/cfwl_widget.h6
-rw-r--r--xfa/fwl/cfwl_widgetmgr.h2
-rw-r--r--xfa/fxfa/app/xfa_ffcheckbutton.cpp4
-rw-r--r--xfa/fxfa/app/xfa_ffchoicelist.cpp8
-rw-r--r--xfa/fxfa/app/xfa_fffield.cpp16
-rw-r--r--xfa/fxfa/app/xfa_ffnotify.cpp6
-rw-r--r--xfa/fxfa/app/xfa_ffnotify.h2
-rw-r--r--xfa/fxfa/app/xfa_ffpushbutton.cpp4
-rw-r--r--xfa/fxfa/app/xfa_fftextedit.cpp12
-rw-r--r--xfa/fxfa/app/xfa_fwltheme.h2
-rw-r--r--xfa/fxfa/cxfa_ffapp.h4
-rw-r--r--xfa/fxfa/cxfa_ffpageview.cpp2
-rw-r--r--xfa/fxfa/cxfa_ffpageview.h6
-rw-r--r--xfa/fxfa/cxfa_ffwidget.cpp6
-rw-r--r--xfa/fxfa/cxfa_ffwidget.h2
-rw-r--r--xfa/fxfa/cxfa_pdffontmgr.h2
-rw-r--r--xfa/fxfa/fm2js/cxfa_fm2jscontext.h4
-rw-r--r--xfa/fxfa/parser/cscript_layoutpseudomodel.cpp3
-rw-r--r--xfa/fxfa/parser/cxfa_dataexporter.cpp2
-rw-r--r--xfa/fxfa/parser/cxfa_dataexporter.h3
-rw-r--r--xfa/fxfa/parser/cxfa_dataimporter.cpp4
-rw-r--r--xfa/fxfa/parser/cxfa_dataimporter.h4
-rw-r--r--xfa/fxfa/parser/cxfa_layoutprocessor.cpp2
-rw-r--r--xfa/fxfa/parser/cxfa_layoutprocessor.h3
-rw-r--r--xfa/fxfa/parser/cxfa_node.cpp12
-rw-r--r--xfa/fxfa/parser/cxfa_nodelocale.h2
-rw-r--r--xfa/fxfa/parser/cxfa_object.h4
-rw-r--r--xfa/fxfa/parser/cxfa_scriptcontext.cpp2
-rw-r--r--xfa/fxfa/parser/cxfa_scriptcontext.h4
100 files changed, 286 insertions, 210 deletions
diff --git a/core/fpdfapi/font/font_int.h b/core/fpdfapi/font/font_int.h
index f434f2b41d..ebd08e258a 100644
--- a/core/fpdfapi/font/font_int.h
+++ b/core/fpdfapi/font/font_int.h
@@ -150,7 +150,7 @@ class CPDF_CMapParser {
const CFX_ByteStringC& first,
const CFX_ByteStringC& second);
- CPDF_CMap* const m_pCMap;
+ CFX_UnownedPtr<CPDF_CMap> const m_pCMap;
int m_Status;
int m_CodeSeq;
uint32_t m_CodePoints[4];
diff --git a/core/fpdfapi/page/cpdf_iccprofile.h b/core/fpdfapi/page/cpdf_iccprofile.h
index 05ac9bf1ba..a0cf744b9c 100644
--- a/core/fpdfapi/page/cpdf_iccprofile.h
+++ b/core/fpdfapi/page/cpdf_iccprofile.h
@@ -8,6 +8,7 @@
#define CORE_FPDFAPI_PAGE_CPDF_ICCPROFILE_H_
#include "core/fxcrt/cfx_retain_ptr.h"
+#include "core/fxcrt/cfx_unowned_ptr.h"
class CPDF_Stream;
@@ -16,7 +17,7 @@ class CPDF_IccProfile : public CFX_Retainable {
template <typename T, typename... Args>
friend CFX_RetainPtr<T> pdfium::MakeRetain(Args&&... args);
- CPDF_Stream* GetStream() const { return m_pStream; }
+ CPDF_Stream* GetStream() const { return m_pStream.Get(); }
bool IsValid() const { return IsSRGB() || IsSupported(); }
bool IsSRGB() const { return m_bsRGB; }
bool IsSupported() const { return !!m_pTransform; }
@@ -28,7 +29,7 @@ class CPDF_IccProfile : public CFX_Retainable {
~CPDF_IccProfile() override;
const bool m_bsRGB;
- CPDF_Stream* const m_pStream;
+ CFX_UnownedPtr<CPDF_Stream> const m_pStream;
void* m_pTransform = nullptr;
uint32_t m_nSrcComponents = 0;
};
diff --git a/core/fpdfapi/page/cpdf_meshstream.h b/core/fpdfapi/page/cpdf_meshstream.h
index e02c3bb4e8..af636a964d 100644
--- a/core/fpdfapi/page/cpdf_meshstream.h
+++ b/core/fpdfapi/page/cpdf_meshstream.h
@@ -67,8 +67,8 @@ class CPDF_MeshStream {
const ShadingType m_type;
const std::vector<std::unique_ptr<CPDF_Function>>& m_funcs;
- CPDF_Stream* const m_pShadingStream;
- CPDF_ColorSpace* const m_pCS;
+ CFX_UnownedPtr<CPDF_Stream> const m_pShadingStream;
+ CFX_UnownedPtr<CPDF_ColorSpace> const m_pCS;
uint32_t m_nCoordBits;
uint32_t m_nComponentBits;
uint32_t m_nFlagBits;
diff --git a/core/fpdfapi/parser/cpdf_stream_acc.h b/core/fpdfapi/parser/cpdf_stream_acc.h
index 5bfdd186c4..bc03cb097b 100644
--- a/core/fpdfapi/parser/cpdf_stream_acc.h
+++ b/core/fpdfapi/parser/cpdf_stream_acc.h
@@ -27,7 +27,7 @@ class CPDF_StreamAcc : public CFX_Retainable {
uint32_t estimated_size = 0,
bool bImageAcc = false);
- const CPDF_Stream* GetStream() const { return m_pStream; }
+ const CPDF_Stream* GetStream() const { return m_pStream.Get(); }
CPDF_Dictionary* GetDict() const {
return m_pStream ? m_pStream->GetDict() : nullptr;
}
@@ -47,7 +47,7 @@ class CPDF_StreamAcc : public CFX_Retainable {
bool m_bNewBuf;
CFX_ByteString m_ImageDecoder;
CPDF_Dictionary* m_pImageParam;
- const CPDF_Stream* const m_pStream;
+ CFX_UnownedPtr<const CPDF_Stream> const m_pStream;
uint8_t* m_pSrcData;
};
diff --git a/core/fpdfapi/render/cpdf_pagerendercache.h b/core/fpdfapi/render/cpdf_pagerendercache.h
index 626e24bd2e..a874212392 100644
--- a/core/fpdfapi/render/cpdf_pagerendercache.h
+++ b/core/fpdfapi/render/cpdf_pagerendercache.h
@@ -10,6 +10,7 @@
#include <map>
#include "core/fxcrt/cfx_retain_ptr.h"
+#include "core/fxcrt/cfx_unowned_ptr.h"
#include "core/fxcrt/fx_system.h"
class CFX_DIBitmap;
@@ -29,7 +30,7 @@ class CPDF_PageRenderCache {
uint32_t GetTimeCount() const { return m_nTimeCount; }
void ResetBitmap(const CFX_RetainPtr<CPDF_Image>& pImage,
const CFX_RetainPtr<CFX_DIBitmap>& pBitmap);
- CPDF_Page* GetPage() const { return m_pPage; }
+ CPDF_Page* GetPage() const { return m_pPage.Get(); }
CPDF_ImageCacheEntry* GetCurImageCacheEntry() const {
return m_pCurImageCacheEntry;
}
@@ -45,7 +46,7 @@ class CPDF_PageRenderCache {
private:
void ClearImageCacheEntry(CPDF_Stream* pStream);
- CPDF_Page* const m_pPage;
+ CFX_UnownedPtr<CPDF_Page> const m_pPage;
CPDF_ImageCacheEntry* m_pCurImageCacheEntry;
std::map<CPDF_Stream*, CPDF_ImageCacheEntry*> m_ImageCache;
uint32_t m_nTimeCount;
diff --git a/core/fpdfapi/render/cpdf_progressiverenderer.cpp b/core/fpdfapi/render/cpdf_progressiverenderer.cpp
index c3cef1fc77..4505db6874 100644
--- a/core/fpdfapi/render/cpdf_progressiverenderer.cpp
+++ b/core/fpdfapi/render/cpdf_progressiverenderer.cpp
@@ -53,8 +53,9 @@ void CPDF_ProgressiveRenderer::Continue(IFX_Pause* pPause) {
m_pCurrentLayer->m_pObjectHolder->GetPageObjectList()->end();
m_pRenderStatus = pdfium::MakeUnique<CPDF_RenderStatus>();
m_pRenderStatus->Initialize(
- m_pContext, m_pDevice, nullptr, nullptr, nullptr, nullptr, m_pOptions,
- m_pCurrentLayer->m_pObjectHolder->m_Transparency, false, nullptr);
+ m_pContext.Get(), m_pDevice.Get(), nullptr, nullptr, nullptr, nullptr,
+ m_pOptions, m_pCurrentLayer->m_pObjectHolder->m_Transparency, false,
+ nullptr);
m_pDevice->SaveState();
m_ClipRect = CFX_FloatRect(m_pDevice->GetClipBox());
CFX_Matrix device2object;
diff --git a/core/fpdfapi/render/cpdf_progressiverenderer.h b/core/fpdfapi/render/cpdf_progressiverenderer.h
index f0b1579601..cadbd2d089 100644
--- a/core/fpdfapi/render/cpdf_progressiverenderer.h
+++ b/core/fpdfapi/render/cpdf_progressiverenderer.h
@@ -47,8 +47,8 @@ class CPDF_ProgressiveRenderer {
static const int kStepLimit = 100;
Status m_Status;
- CPDF_RenderContext* const m_pContext;
- CFX_RenderDevice* const m_pDevice;
+ CFX_UnownedPtr<CPDF_RenderContext> const m_pContext;
+ CFX_UnownedPtr<CFX_RenderDevice> const m_pDevice;
const CPDF_RenderOptions* const m_pOptions;
std::unique_ptr<CPDF_RenderStatus> m_pRenderStatus;
CFX_FloatRect m_ClipRect;
diff --git a/core/fpdfapi/render/cpdf_renderstatus.cpp b/core/fpdfapi/render/cpdf_renderstatus.cpp
index 1d2218c166..7c17ff56b4 100644
--- a/core/fpdfapi/render/cpdf_renderstatus.cpp
+++ b/core/fpdfapi/render/cpdf_renderstatus.cpp
@@ -82,11 +82,11 @@ class CPDF_RefType3Cache {
~CPDF_RefType3Cache() {
while (m_dwCount--)
- ReleaseCachedType3(m_pType3Font);
+ ReleaseCachedType3(m_pType3Font.Get());
}
uint32_t m_dwCount;
- CPDF_Type3Font* const m_pType3Font;
+ CFX_UnownedPtr<CPDF_Type3Font> const m_pType3Font;
};
uint32_t CountOutputs(
diff --git a/core/fpdfapi/render/cpdf_type3cache.h b/core/fpdfapi/render/cpdf_type3cache.h
index 3c7d95b8c0..36a1d6f98a 100644
--- a/core/fpdfapi/render/cpdf_type3cache.h
+++ b/core/fpdfapi/render/cpdf_type3cache.h
@@ -38,7 +38,7 @@ class CPDF_Type3Cache : public CFX_Retainable {
float retinaScaleX,
float retinaScaleY);
- CPDF_Type3Font* const m_pFont;
+ CFX_UnownedPtr<CPDF_Type3Font> const m_pFont;
std::map<CFX_ByteString, std::unique_ptr<CPDF_Type3Glyphs>> m_SizeMap;
};
diff --git a/core/fpdfdoc/cpdf_aaction.cpp b/core/fpdfdoc/cpdf_aaction.cpp
index 7dc42828f4..033bf03a6a 100644
--- a/core/fpdfdoc/cpdf_aaction.cpp
+++ b/core/fpdfdoc/cpdf_aaction.cpp
@@ -14,6 +14,14 @@ const char* g_sAATypes[] = {"E", "X", "D", "U", "Fo", "Bl", "PO", "PC",
} // namespace
+CPDF_AAction::CPDF_AAction() {}
+
+CPDF_AAction::CPDF_AAction(CPDF_Dictionary* pDict) : m_pDict(pDict) {}
+
+CPDF_AAction::CPDF_AAction(const CPDF_AAction& that) = default;
+
+CPDF_AAction::~CPDF_AAction() {}
+
bool CPDF_AAction::ActionExist(AActionType eType) const {
return m_pDict && m_pDict->KeyExist(g_sAATypes[eType]);
}
diff --git a/core/fpdfdoc/cpdf_aaction.h b/core/fpdfdoc/cpdf_aaction.h
index d615915ee3..b2b691fc26 100644
--- a/core/fpdfdoc/cpdf_aaction.h
+++ b/core/fpdfdoc/cpdf_aaction.h
@@ -37,15 +37,17 @@ class CPDF_AAction {
DocumentPrinted
};
- CPDF_AAction() : m_pDict(nullptr) {}
- explicit CPDF_AAction(CPDF_Dictionary* pDict) : m_pDict(pDict) {}
+ CPDF_AAction();
+ explicit CPDF_AAction(CPDF_Dictionary* pDict);
+ CPDF_AAction(const CPDF_AAction& that);
+ ~CPDF_AAction();
bool ActionExist(AActionType eType) const;
CPDF_Action GetAction(AActionType eType) const;
- CPDF_Dictionary* GetDict() const { return m_pDict; }
+ CPDF_Dictionary* GetDict() const { return m_pDict.Get(); }
private:
- CPDF_Dictionary* const m_pDict;
+ CFX_UnownedPtr<CPDF_Dictionary> const m_pDict;
};
#endif // CORE_FPDFDOC_CPDF_AACTION_H_
diff --git a/core/fpdfdoc/cpdf_action.cpp b/core/fpdfdoc/cpdf_action.cpp
index f523f86b37..b40fdcd225 100644
--- a/core/fpdfdoc/cpdf_action.cpp
+++ b/core/fpdfdoc/cpdf_action.cpp
@@ -21,6 +21,14 @@ const char* const g_sATypes[] = {
} // namespace
+CPDF_Action::CPDF_Action() {}
+
+CPDF_Action::CPDF_Action(CPDF_Dictionary* pDict) : m_pDict(pDict) {}
+
+CPDF_Action::CPDF_Action(const CPDF_Action& that) = default;
+
+CPDF_Action::~CPDF_Action() {}
+
CPDF_Dest CPDF_Action::GetDest(CPDF_Document* pDoc) const {
if (!m_pDict)
return CPDF_Dest();
diff --git a/core/fpdfdoc/cpdf_action.h b/core/fpdfdoc/cpdf_action.h
index 426edb12e9..bd1ce58ec6 100644
--- a/core/fpdfdoc/cpdf_action.h
+++ b/core/fpdfdoc/cpdf_action.h
@@ -37,10 +37,12 @@ class CPDF_Action {
GoTo3DView
};
- CPDF_Action() : m_pDict(nullptr) {}
- explicit CPDF_Action(CPDF_Dictionary* pDict) : m_pDict(pDict) {}
+ CPDF_Action();
+ explicit CPDF_Action(CPDF_Dictionary* pDict);
+ CPDF_Action(const CPDF_Action& that);
+ ~CPDF_Action();
- CPDF_Dictionary* GetDict() const { return m_pDict; }
+ CPDF_Dictionary* GetDict() const { return m_pDict.Get(); }
ActionType GetType() const;
CPDF_Dest GetDest(CPDF_Document* pDoc) const;
CFX_WideString GetFilePath() const;
@@ -53,7 +55,7 @@ class CPDF_Action {
CPDF_Action GetSubAction(size_t iIndex) const;
private:
- CPDF_Dictionary* const m_pDict;
+ CFX_UnownedPtr<CPDF_Dictionary> const m_pDict;
};
#endif // CORE_FPDFDOC_CPDF_ACTION_H_
diff --git a/core/fpdfdoc/cpdf_actionfields.cpp b/core/fpdfdoc/cpdf_actionfields.cpp
index 35ec92c1b8..f3c3f5ed25 100644
--- a/core/fpdfdoc/cpdf_actionfields.cpp
+++ b/core/fpdfdoc/cpdf_actionfields.cpp
@@ -10,6 +10,11 @@
#include "core/fpdfapi/parser/cpdf_dictionary.h"
#include "core/fpdfdoc/cpdf_action.h"
+CPDF_ActionFields::CPDF_ActionFields(const CPDF_Action* pAction)
+ : m_pAction(pAction) {}
+
+CPDF_ActionFields::~CPDF_ActionFields() {}
+
size_t CPDF_ActionFields::GetFieldsCount() const {
if (!m_pAction)
return 0;
diff --git a/core/fpdfdoc/cpdf_actionfields.h b/core/fpdfdoc/cpdf_actionfields.h
index 9e0664cadb..71b42475a7 100644
--- a/core/fpdfdoc/cpdf_actionfields.h
+++ b/core/fpdfdoc/cpdf_actionfields.h
@@ -11,19 +11,22 @@
#include <vector>
+#include "core/fxcrt/cfx_unowned_ptr.h"
+
class CPDF_Action;
class CPDF_Object;
class CPDF_ActionFields {
public:
- explicit CPDF_ActionFields(const CPDF_Action* pAction) : m_pAction(pAction) {}
+ explicit CPDF_ActionFields(const CPDF_Action* pAction);
+ ~CPDF_ActionFields();
size_t GetFieldsCount() const;
std::vector<CPDF_Object*> GetAllFields() const;
CPDF_Object* GetField(size_t iIndex) const;
private:
- const CPDF_Action* const m_pAction;
+ CFX_UnownedPtr<const CPDF_Action> const m_pAction;
};
#endif // CORE_FPDFDOC_CPDF_ACTIONFIELDS_H_
diff --git a/core/fpdfdoc/cpdf_annot.cpp b/core/fpdfdoc/cpdf_annot.cpp
index 146c863cf3..eab6cd0145 100644
--- a/core/fpdfdoc/cpdf_annot.cpp
+++ b/core/fpdfdoc/cpdf_annot.cpp
@@ -90,23 +90,23 @@ void CPDF_Annot::GenerateAPIfNeeded() {
CPDF_Dictionary* pDict = m_pAnnotDict.Get();
bool result = false;
if (m_nSubtype == CPDF_Annot::Subtype::CIRCLE)
- result = CPVT_GenerateAP::GenerateCircleAP(m_pDocument, pDict);
+ result = CPVT_GenerateAP::GenerateCircleAP(m_pDocument.Get(), pDict);
else if (m_nSubtype == CPDF_Annot::Subtype::HIGHLIGHT)
- result = CPVT_GenerateAP::GenerateHighlightAP(m_pDocument, pDict);
+ result = CPVT_GenerateAP::GenerateHighlightAP(m_pDocument.Get(), pDict);
else if (m_nSubtype == CPDF_Annot::Subtype::INK)
- result = CPVT_GenerateAP::GenerateInkAP(m_pDocument, pDict);
+ result = CPVT_GenerateAP::GenerateInkAP(m_pDocument.Get(), pDict);
else if (m_nSubtype == CPDF_Annot::Subtype::POPUP)
- result = CPVT_GenerateAP::GeneratePopupAP(m_pDocument, pDict);
+ result = CPVT_GenerateAP::GeneratePopupAP(m_pDocument.Get(), pDict);
else if (m_nSubtype == CPDF_Annot::Subtype::SQUARE)
- result = CPVT_GenerateAP::GenerateSquareAP(m_pDocument, pDict);
+ result = CPVT_GenerateAP::GenerateSquareAP(m_pDocument.Get(), pDict);
else if (m_nSubtype == CPDF_Annot::Subtype::SQUIGGLY)
- result = CPVT_GenerateAP::GenerateSquigglyAP(m_pDocument, pDict);
+ result = CPVT_GenerateAP::GenerateSquigglyAP(m_pDocument.Get(), pDict);
else if (m_nSubtype == CPDF_Annot::Subtype::STRIKEOUT)
- result = CPVT_GenerateAP::GenerateStrikeOutAP(m_pDocument, pDict);
+ result = CPVT_GenerateAP::GenerateStrikeOutAP(m_pDocument.Get(), pDict);
else if (m_nSubtype == CPDF_Annot::Subtype::TEXT)
- result = CPVT_GenerateAP::GenerateTextAP(m_pDocument, pDict);
+ result = CPVT_GenerateAP::GenerateTextAP(m_pDocument.Get(), pDict);
else if (m_nSubtype == CPDF_Annot::Subtype::UNDERLINE)
- result = CPVT_GenerateAP::GenerateUnderlineAP(m_pDocument, pDict);
+ result = CPVT_GenerateAP::GenerateUnderlineAP(m_pDocument.Get(), pDict);
if (result) {
m_pAnnotDict->SetNewFor<CPDF_Boolean>(kPDFiumKey_HasGeneratedAP, result);
@@ -205,7 +205,7 @@ CPDF_Form* CPDF_Annot::GetAPForm(const CPDF_Page* pPage, AppearanceMode mode) {
return it->second.get();
auto pNewForm = pdfium::MakeUnique<CPDF_Form>(
- m_pDocument, pPage->m_pResources.Get(), pStream);
+ m_pDocument.Get(), pPage->m_pResources.Get(), pStream);
pNewForm->ParseContent(nullptr, nullptr, nullptr);
CPDF_Form* pResult = pNewForm.get();
diff --git a/core/fpdfdoc/cpdf_annot.h b/core/fpdfdoc/cpdf_annot.h
index 188106acdf..85a205345e 100644
--- a/core/fpdfdoc/cpdf_annot.h
+++ b/core/fpdfdoc/cpdf_annot.h
@@ -82,7 +82,7 @@ class CPDF_Annot {
CPDF_Annot::Subtype GetSubtype() const;
uint32_t GetFlags() const;
CFX_FloatRect GetRect() const;
- CPDF_Document* GetDocument() const { return m_pDocument; }
+ CPDF_Document* GetDocument() const { return m_pDocument.Get(); }
CPDF_Dictionary* GetAnnotDict() const { return m_pAnnotDict.Get(); }
bool DrawAppearance(CPDF_Page* pPage,
@@ -112,7 +112,7 @@ class CPDF_Annot {
CFX_FloatRect RectForDrawing() const;
CFX_MaybeOwned<CPDF_Dictionary> m_pAnnotDict;
- CPDF_Document* const m_pDocument;
+ CFX_UnownedPtr<CPDF_Document> const m_pDocument;
CPDF_Annot::Subtype m_nSubtype;
std::map<CPDF_Stream*, std::unique_ptr<CPDF_Form>> m_APMap;
// |m_bOpenState| is only set for popup annotations.
diff --git a/core/fpdfdoc/cpdf_apsettings.cpp b/core/fpdfdoc/cpdf_apsettings.cpp
index 4c44f5a13e..ee205e01dc 100644
--- a/core/fpdfdoc/cpdf_apsettings.cpp
+++ b/core/fpdfdoc/cpdf_apsettings.cpp
@@ -14,6 +14,10 @@
CPDF_ApSettings::CPDF_ApSettings(CPDF_Dictionary* pDict) : m_pDict(pDict) {}
+CPDF_ApSettings::CPDF_ApSettings(const CPDF_ApSettings& that) = default;
+
+CPDF_ApSettings::~CPDF_ApSettings() {}
+
bool CPDF_ApSettings::HasMKEntry(const CFX_ByteString& csEntry) const {
return m_pDict && m_pDict->KeyExist(csEntry);
}
diff --git a/core/fpdfdoc/cpdf_apsettings.h b/core/fpdfdoc/cpdf_apsettings.h
index ba0b05bd2b..2f8f9e49d9 100644
--- a/core/fpdfdoc/cpdf_apsettings.h
+++ b/core/fpdfdoc/cpdf_apsettings.h
@@ -8,6 +8,7 @@
#define CORE_FPDFDOC_CPDF_APSETTINGS_H_
#include "core/fpdfdoc/cpdf_iconfit.h"
+#include "core/fxcrt/cfx_unowned_ptr.h"
#include "core/fxcrt/fx_string.h"
#include "core/fxcrt/fx_system.h"
#include "core/fxge/fx_dib.h"
@@ -19,6 +20,8 @@ class CPDF_Stream;
class CPDF_ApSettings {
public:
explicit CPDF_ApSettings(CPDF_Dictionary* pDict);
+ CPDF_ApSettings(const CPDF_ApSettings& that);
+ ~CPDF_ApSettings();
bool HasMKEntry(const CFX_ByteString& csEntry) const;
int GetRotation() const;
@@ -68,7 +71,7 @@ class CPDF_ApSettings {
CFX_WideString GetCaption(const CFX_ByteString& csEntry) const;
CPDF_Stream* GetIcon(const CFX_ByteString& csEntry) const;
- CPDF_Dictionary* const m_pDict;
+ CFX_UnownedPtr<CPDF_Dictionary> const m_pDict;
};
#endif // CORE_FPDFDOC_CPDF_APSETTINGS_H_
diff --git a/core/fpdfdoc/cpdf_formcontrol.cpp b/core/fpdfdoc/cpdf_formcontrol.cpp
index d9740f7c99..54524a64e2 100644
--- a/core/fpdfdoc/cpdf_formcontrol.cpp
+++ b/core/fpdfdoc/cpdf_formcontrol.cpp
@@ -32,6 +32,8 @@ CPDF_FormControl::CPDF_FormControl(CPDF_FormField* pField,
m_pWidgetDict(pWidgetDict),
m_pForm(m_pField->GetForm()) {}
+CPDF_FormControl::~CPDF_FormControl() {}
+
CFX_ByteString CPDF_FormControl::GetOnStateName() const {
ASSERT(GetType() == CPDF_FormField::CheckBox ||
GetType() == CPDF_FormField::RadioButton);
@@ -167,7 +169,7 @@ void CPDF_FormControl::DrawControl(CFX_RenderDevice* pDevice,
if (m_pWidgetDict->GetIntegerFor("F") & ANNOTFLAG_HIDDEN)
return;
- CPDF_Stream* pStream = FPDFDOC_GetAnnotAP(m_pWidgetDict, mode);
+ CPDF_Stream* pStream = FPDFDOC_GetAnnotAP(m_pWidgetDict.Get(), mode);
if (!pStream)
return;
@@ -178,7 +180,7 @@ void CPDF_FormControl::DrawControl(CFX_RenderDevice* pDevice,
CFX_Matrix matrix;
matrix.MatchRect(arect, form_bbox);
matrix.Concat(*pMatrix);
- CPDF_Form form(m_pField->GetForm()->m_pDocument,
+ CPDF_Form form(m_pField->GetForm()->m_pDocument.Get(),
m_pField->GetForm()->m_pFormDict->GetDictFor("DR"), pStream);
form.ParseContent(nullptr, nullptr, nullptr);
CPDF_RenderContext context(pPage);
@@ -286,7 +288,7 @@ CPDF_Font* CPDF_FormControl::GetDefaultControlFont() {
if (csFontNameTag.IsEmpty())
return nullptr;
- CPDF_Object* pObj = FPDF_GetFieldAttr(m_pWidgetDict, "DR");
+ CPDF_Object* pObj = FPDF_GetFieldAttr(m_pWidgetDict.Get(), "DR");
if (CPDF_Dictionary* pDict = ToDictionary(pObj)) {
CPDF_Dictionary* pFonts = pDict->GetDictFor("Font");
if (pFonts) {
diff --git a/core/fpdfdoc/cpdf_formcontrol.h b/core/fpdfdoc/cpdf_formcontrol.h
index 154d592f32..eb63b5b6f0 100644
--- a/core/fpdfdoc/cpdf_formcontrol.h
+++ b/core/fpdfdoc/cpdf_formcontrol.h
@@ -47,11 +47,12 @@ class CPDF_FormControl {
enum HighlightingMode { None = 0, Invert, Outline, Push, Toggle };
CPDF_FormControl(CPDF_FormField* pField, CPDF_Dictionary* pWidgetDict);
+ ~CPDF_FormControl();
CPDF_FormField::Type GetType() const { return m_pField->GetType(); }
- const CPDF_InterForm* GetInterForm() const { return m_pForm; }
+ const CPDF_InterForm* GetInterForm() const { return m_pForm.Get(); }
CPDF_FormField* GetField() const { return m_pField; }
- CPDF_Dictionary* GetWidget() const { return m_pWidgetDict; }
+ CPDF_Dictionary* GetWidget() const { return m_pWidgetDict.Get(); }
CFX_FloatRect GetRect() const { return m_pWidgetDict->GetRectFor("Rect"); }
void DrawControl(CFX_RenderDevice* pDevice,
@@ -127,8 +128,8 @@ class CPDF_FormControl {
CPDF_ApSettings GetMK() const;
CPDF_FormField* const m_pField;
- CPDF_Dictionary* const m_pWidgetDict;
- const CPDF_InterForm* const m_pForm;
+ CFX_UnownedPtr<CPDF_Dictionary> const m_pWidgetDict;
+ CFX_UnownedPtr<const CPDF_InterForm> const m_pForm;
};
#endif // CORE_FPDFDOC_CPDF_FORMCONTROL_H_
diff --git a/core/fpdfdoc/cpdf_formfield.cpp b/core/fpdfdoc/cpdf_formfield.cpp
index 7a48826cbd..97ea052436 100644
--- a/core/fpdfdoc/cpdf_formfield.cpp
+++ b/core/fpdfdoc/cpdf_formfield.cpp
@@ -408,7 +408,7 @@ int CPDF_FormField::GetMaxLen() const {
for (auto& pControl : m_ControlList) {
if (!pControl)
continue;
- CPDF_Dictionary* pWidgetDict = pControl->m_pWidgetDict;
+ CPDF_Dictionary* pWidgetDict = pControl->m_pWidgetDict.Get();
if (pWidgetDict->KeyExist("MaxLen"))
return pWidgetDict->GetIntegerFor("MaxLen");
}
diff --git a/core/fpdfdoc/cpdf_iconfit.cpp b/core/fpdfdoc/cpdf_iconfit.cpp
index 0f05d7de35..a28f3bc430 100644
--- a/core/fpdfdoc/cpdf_iconfit.cpp
+++ b/core/fpdfdoc/cpdf_iconfit.cpp
@@ -10,6 +10,12 @@
#include "core/fpdfapi/parser/cpdf_dictionary.h"
#include "core/fxcrt/fx_string.h"
+CPDF_IconFit::CPDF_IconFit(const CPDF_Dictionary* pDict) : m_pDict(pDict) {}
+
+CPDF_IconFit::CPDF_IconFit(const CPDF_IconFit& that) = default;
+
+CPDF_IconFit::~CPDF_IconFit() {}
+
CPDF_IconFit::ScaleMethod CPDF_IconFit::GetScaleMethod() {
if (!m_pDict)
return Always;
diff --git a/core/fpdfdoc/cpdf_iconfit.h b/core/fpdfdoc/cpdf_iconfit.h
index 6e3b8cf50a..0fa8d37e24 100644
--- a/core/fpdfdoc/cpdf_iconfit.h
+++ b/core/fpdfdoc/cpdf_iconfit.h
@@ -7,6 +7,7 @@
#ifndef CORE_FPDFDOC_CPDF_ICONFIT_H_
#define CORE_FPDFDOC_CPDF_ICONFIT_H_
+#include "core/fxcrt/cfx_unowned_ptr.h"
#include "core/fxcrt/fx_system.h"
class CPDF_Dictionary;
@@ -15,16 +16,18 @@ class CPDF_IconFit {
public:
enum ScaleMethod { Always = 0, Bigger, Smaller, Never };
- explicit CPDF_IconFit(const CPDF_Dictionary* pDict) : m_pDict(pDict) {}
+ explicit CPDF_IconFit(const CPDF_Dictionary* pDict);
+ CPDF_IconFit(const CPDF_IconFit& that);
+ ~CPDF_IconFit();
ScaleMethod GetScaleMethod();
bool IsProportionalScale();
void GetIconPosition(float& fLeft, float& fBottom);
bool GetFittingBounds();
- const CPDF_Dictionary* GetDict() const { return m_pDict; }
+ const CPDF_Dictionary* GetDict() const { return m_pDict.Get(); }
private:
- const CPDF_Dictionary* const m_pDict;
+ CFX_UnownedPtr<const CPDF_Dictionary> const m_pDict;
};
#endif // CORE_FPDFDOC_CPDF_ICONFIT_H_
diff --git a/core/fpdfdoc/cpdf_interform.cpp b/core/fpdfdoc/cpdf_interform.cpp
index 455158b74d..de99a5de0f 100644
--- a/core/fpdfdoc/cpdf_interform.cpp
+++ b/core/fpdfdoc/cpdf_interform.cpp
@@ -961,7 +961,7 @@ int CPDF_InterForm::FindFieldInCalculationOrder(const CPDF_FormField* pField) {
}
CPDF_Font* CPDF_InterForm::GetFormFont(CFX_ByteString csNameTag) const {
- return GetFont(m_pFormDict, m_pDocument, csNameTag);
+ return GetFont(m_pFormDict, m_pDocument.Get(), csNameTag);
}
CPDF_DefaultAppearance CPDF_InterForm::GetDefaultAppearance() const {
diff --git a/core/fpdfdoc/cpdf_interform.h b/core/fpdfdoc/cpdf_interform.h
index 23530e57b2..0a9b3e0e4a 100644
--- a/core/fpdfdoc/cpdf_interform.h
+++ b/core/fpdfdoc/cpdf_interform.h
@@ -108,7 +108,7 @@ class CPDF_InterForm {
static bool s_bUpdateAP;
- CPDF_Document* const m_pDocument;
+ CFX_UnownedPtr<CPDF_Document> const m_pDocument;
CPDF_Dictionary* m_pFormDict;
std::map<const CPDF_Dictionary*, std::unique_ptr<CPDF_FormControl>>
m_ControlMap;
diff --git a/core/fpdfdoc/cpdf_numbertree.cpp b/core/fpdfdoc/cpdf_numbertree.cpp
index 5f2bc06666..952fb4ef1d 100644
--- a/core/fpdfdoc/cpdf_numbertree.cpp
+++ b/core/fpdfdoc/cpdf_numbertree.cpp
@@ -47,6 +47,10 @@ CPDF_Object* SearchNumberNode(const CPDF_Dictionary* pNode, int num) {
} // namespace
+CPDF_NumberTree::CPDF_NumberTree(CPDF_Dictionary* pRoot) : m_pRoot(pRoot) {}
+
+CPDF_NumberTree::~CPDF_NumberTree() {}
+
CPDF_Object* CPDF_NumberTree::LookupValue(int num) const {
- return SearchNumberNode(m_pRoot, num);
+ return SearchNumberNode(m_pRoot.Get(), num);
}
diff --git a/core/fpdfdoc/cpdf_numbertree.h b/core/fpdfdoc/cpdf_numbertree.h
index bfe44fddb9..843e186208 100644
--- a/core/fpdfdoc/cpdf_numbertree.h
+++ b/core/fpdfdoc/cpdf_numbertree.h
@@ -7,17 +7,20 @@
#ifndef CORE_FPDFDOC_CPDF_NUMBERTREE_H_
#define CORE_FPDFDOC_CPDF_NUMBERTREE_H_
+#include "core/fxcrt/cfx_unowned_ptr.h"
+
class CPDF_Dictionary;
class CPDF_Object;
class CPDF_NumberTree {
public:
- explicit CPDF_NumberTree(CPDF_Dictionary* pRoot) : m_pRoot(pRoot) {}
+ explicit CPDF_NumberTree(CPDF_Dictionary* pRoot);
+ ~CPDF_NumberTree();
CPDF_Object* LookupValue(int num) const;
protected:
- CPDF_Dictionary* const m_pRoot;
+ CFX_UnownedPtr<CPDF_Dictionary> const m_pRoot;
};
#endif // CORE_FPDFDOC_CPDF_NUMBERTREE_H_
diff --git a/core/fpdfdoc/cpdf_occontext.cpp b/core/fpdfdoc/cpdf_occontext.cpp
index c4272f4897..66950c9406 100644
--- a/core/fpdfdoc/cpdf_occontext.cpp
+++ b/core/fpdfdoc/cpdf_occontext.cpp
@@ -101,7 +101,7 @@ CPDF_OCContext::~CPDF_OCContext() {}
bool CPDF_OCContext::LoadOCGStateFromConfig(
const CFX_ByteString& csConfig,
const CPDF_Dictionary* pOCGDict) const {
- CPDF_Dictionary* pConfig = GetConfig(m_pDocument, pOCGDict);
+ CPDF_Dictionary* pConfig = GetConfig(m_pDocument.Get(), pOCGDict);
if (!pConfig)
return true;
diff --git a/core/fpdfdoc/cpdf_occontext.h b/core/fpdfdoc/cpdf_occontext.h
index 753aa5c176..ea8eea2489 100644
--- a/core/fpdfdoc/cpdf_occontext.h
+++ b/core/fpdfdoc/cpdf_occontext.h
@@ -38,7 +38,7 @@ class CPDF_OCContext : public CFX_Retainable {
bool GetOCGVE(CPDF_Array* pExpression, int nLevel);
bool LoadOCMDState(const CPDF_Dictionary* pOCMDDict);
- CPDF_Document* const m_pDocument;
+ CFX_UnownedPtr<CPDF_Document> const m_pDocument;
const UsageType m_eUsageType;
std::map<const CPDF_Dictionary*, bool> m_OCGStates;
};
diff --git a/core/fpdfdoc/cpdf_pagelabel.cpp b/core/fpdfdoc/cpdf_pagelabel.cpp
index 4200a28f64..3892abad5e 100644
--- a/core/fpdfdoc/cpdf_pagelabel.cpp
+++ b/core/fpdfdoc/cpdf_pagelabel.cpp
@@ -75,6 +75,8 @@ CFX_WideString GetLabelNumPortion(int num, const CFX_ByteString& bsStyle) {
CPDF_PageLabel::CPDF_PageLabel(CPDF_Document* pDocument)
: m_pDocument(pDocument) {}
+CPDF_PageLabel::~CPDF_PageLabel() {}
+
bool CPDF_PageLabel::GetLabel(int nPage, CFX_WideString* wsLabel) const {
if (!m_pDocument)
return false;
diff --git a/core/fpdfdoc/cpdf_pagelabel.h b/core/fpdfdoc/cpdf_pagelabel.h
index 0f91f614d9..66324f87c6 100644
--- a/core/fpdfdoc/cpdf_pagelabel.h
+++ b/core/fpdfdoc/cpdf_pagelabel.h
@@ -14,13 +14,14 @@ class CPDF_Document;
class CPDF_PageLabel {
public:
explicit CPDF_PageLabel(CPDF_Document* pDocument);
+ ~CPDF_PageLabel();
bool GetLabel(int nPage, CFX_WideString* wsLabel) const;
int32_t GetPageByLabel(const CFX_ByteStringC& bsLabel) const;
int32_t GetPageByLabel(const CFX_WideStringC& wsLabel) const;
private:
- CPDF_Document* const m_pDocument;
+ CFX_UnownedPtr<CPDF_Document> const m_pDocument;
};
#endif // CORE_FPDFDOC_CPDF_PAGELABEL_H_
diff --git a/core/fpdfdoc/cpdf_structelement.cpp b/core/fpdfdoc/cpdf_structelement.cpp
index c85ae0dd42..c5f2b6bd79 100644
--- a/core/fpdfdoc/cpdf_structelement.cpp
+++ b/core/fpdfdoc/cpdf_structelement.cpp
@@ -133,5 +133,5 @@ void CPDF_StructElement::LoadKid(uint32_t PageObjNum,
}
pKid->m_pElement =
- pdfium::MakeRetain<CPDF_StructElement>(m_pTree, this, pKidDict);
+ pdfium::MakeRetain<CPDF_StructElement>(m_pTree.Get(), this, pKidDict);
}
diff --git a/core/fpdfdoc/cpdf_structelement.h b/core/fpdfdoc/cpdf_structelement.h
index d8820a141c..8fe73e51c8 100644
--- a/core/fpdfdoc/cpdf_structelement.h
+++ b/core/fpdfdoc/cpdf_structelement.h
@@ -41,7 +41,7 @@ class CPDF_StructElement : public CFX_Retainable {
const CFX_ByteString& GetType() const { return m_Type; }
const CFX_ByteString& GetTitle() const { return m_Title; }
- CPDF_Dictionary* GetDict() const { return m_pDict; }
+ CPDF_Dictionary* GetDict() const { return m_pDict.Get(); }
int CountKids() const;
CPDF_StructElement* GetKidIfElement(int index) const;
@@ -56,9 +56,9 @@ class CPDF_StructElement : public CFX_Retainable {
void LoadKids(CPDF_Dictionary* pDict);
void LoadKid(uint32_t PageObjNum, CPDF_Object* pObj, CPDF_StructKid* pKid);
- CPDF_StructTree* const m_pTree;
- CPDF_StructElement* const m_pParent;
- CPDF_Dictionary* const m_pDict;
+ CFX_UnownedPtr<CPDF_StructTree> const m_pTree;
+ CFX_UnownedPtr<CPDF_StructElement> const m_pParent;
+ CFX_UnownedPtr<CPDF_Dictionary> const m_pDict;
CFX_ByteString m_Type;
CFX_ByteString m_Title;
std::vector<CPDF_StructKid> m_Kids;
diff --git a/core/fpdfdoc/cpdf_variabletext.h b/core/fpdfdoc/cpdf_variabletext.h
index 2e6caf63d6..a226350006 100644
--- a/core/fpdfdoc/cpdf_variabletext.h
+++ b/core/fpdfdoc/cpdf_variabletext.h
@@ -58,7 +58,7 @@ class CPDF_VariableText {
private:
CPVT_WordPlace m_CurPos;
- CPDF_VariableText* const m_pVT;
+ CFX_UnownedPtr<CPDF_VariableText> const m_pVT;
};
class Provider {
diff --git a/core/fpdfdoc/csection.h b/core/fpdfdoc/csection.h
index b465d1d63d..aefdcaf7b2 100644
--- a/core/fpdfdoc/csection.h
+++ b/core/fpdfdoc/csection.h
@@ -57,7 +57,7 @@ class CSection final {
void ClearRightWords(int32_t nWordIndex);
void ClearMidWords(int32_t nBeginIndex, int32_t nEndIndex);
- CPDF_VariableText* const m_pVT;
+ CFX_UnownedPtr<CPDF_VariableText> const m_pVT;
};
#endif // CORE_FPDFDOC_CSECTION_H_
diff --git a/core/fpdfdoc/ctypeset.h b/core/fpdfdoc/ctypeset.h
index f769fe1311..1b016ea562 100644
--- a/core/fpdfdoc/ctypeset.h
+++ b/core/fpdfdoc/ctypeset.h
@@ -27,7 +27,7 @@ class CTypeset final {
void OutputLines();
CPVT_FloatRect m_rcRet;
- CPDF_VariableText* const m_pVT;
+ CFX_UnownedPtr<CPDF_VariableText> const m_pVT;
CSection* const m_pSection;
};
diff --git a/core/fpdftext/cpdf_linkextract.h b/core/fpdftext/cpdf_linkextract.h
index 43306cf87a..564d552548 100644
--- a/core/fpdftext/cpdf_linkextract.h
+++ b/core/fpdftext/cpdf_linkextract.h
@@ -38,7 +38,7 @@ class CPDF_LinkExtract {
CFX_WideString m_strUrl;
};
- const CPDF_TextPage* const m_pTextPage;
+ CFX_UnownedPtr<const CPDF_TextPage> const m_pTextPage;
CFX_WideString m_strPageText;
std::vector<Link> m_LinkArray;
};
diff --git a/core/fxcodec/codec/cjpx_decoder.h b/core/fxcodec/codec/cjpx_decoder.h
index 2e63caac73..a62b41aafc 100644
--- a/core/fxcodec/codec/cjpx_decoder.h
+++ b/core/fxcodec/codec/cjpx_decoder.h
@@ -9,6 +9,7 @@
#include <vector>
+#include "core/fxcrt/cfx_unowned_ptr.h"
#include "third_party/libopenjpeg20/openjpeg.h"
class CPDF_ColorSpace;
@@ -30,7 +31,7 @@ class CJPX_Decoder {
opj_image_t* image;
opj_codec_t* l_codec;
opj_stream_t* l_stream;
- const CPDF_ColorSpace* const m_ColorSpace;
+ CFX_UnownedPtr<const CPDF_ColorSpace> const m_ColorSpace;
};
#endif // CORE_FXCODEC_CODEC_CJPX_DECODER_H_
diff --git a/core/fxcodec/jbig2/JBig2_ArithDecoder.h b/core/fxcodec/jbig2/JBig2_ArithDecoder.h
index 24fb80cfbd..2ec64fe954 100644
--- a/core/fxcodec/jbig2/JBig2_ArithDecoder.h
+++ b/core/fxcodec/jbig2/JBig2_ArithDecoder.h
@@ -9,6 +9,8 @@
#include <stdint.h>
+#include "core/fxcrt/cfx_unowned_ptr.h"
+
class CJBig2_BitStream;
struct JBig2ArithCtx {
@@ -37,7 +39,7 @@ class CJBig2_ArithDecoder {
unsigned int m_C;
unsigned int m_A;
unsigned int m_CT;
- CJBig2_BitStream* const m_pStream;
+ CFX_UnownedPtr<CJBig2_BitStream> const m_pStream;
};
#endif // CORE_FXCODEC_JBIG2_JBIG2_ARITHDECODER_H_
diff --git a/core/fxcodec/jbig2/JBig2_Context.h b/core/fxcodec/jbig2/JBig2_Context.h
index 8568aab7e7..4151fa356e 100644
--- a/core/fxcodec/jbig2/JBig2_Context.h
+++ b/core/fxcodec/jbig2/JBig2_Context.h
@@ -95,7 +95,7 @@ class CJBig2_Context {
bool m_bInPage;
bool m_bBufSpecified;
int32_t m_PauseStep;
- IFX_Pause* const m_pPause;
+ CFX_UnownedPtr<IFX_Pause> const m_pPause;
FXCODEC_STATUS m_ProcessingStatus;
std::vector<JBig2ArithCtx> m_gbContext;
std::unique_ptr<CJBig2_ArithDecoder> m_pArithDecoder;
diff --git a/core/fxcodec/jbig2/JBig2_HuffmanDecoder.h b/core/fxcodec/jbig2/JBig2_HuffmanDecoder.h
index c72346ac18..c7192b74ed 100644
--- a/core/fxcodec/jbig2/JBig2_HuffmanDecoder.h
+++ b/core/fxcodec/jbig2/JBig2_HuffmanDecoder.h
@@ -18,7 +18,7 @@ class CJBig2_HuffmanDecoder {
int decodeAValue(CJBig2_HuffmanTable* pTable, int* nResult);
private:
- CJBig2_BitStream* const m_pStream;
+ CFX_UnownedPtr<CJBig2_BitStream> const m_pStream;
};
#endif // CORE_FXCODEC_JBIG2_JBIG2_HUFFMANDECODER_H_
diff --git a/core/fxcrt/xml/cxml_element.h b/core/fxcrt/xml/cxml_element.h
index 2eb6caf74c..d708032adb 100644
--- a/core/fxcrt/xml/cxml_element.h
+++ b/core/fxcrt/xml/cxml_element.h
@@ -30,7 +30,7 @@ class CXML_Element : public CXML_Object {
CFX_ByteString GetTagName(bool bQualified = false) const;
CFX_ByteString GetNamespace(bool bQualified = false) const;
CFX_ByteString GetNamespaceURI(const CFX_ByteString& qName) const;
- const CXML_Element* GetParent() const { return m_pParent; }
+ const CXML_Element* GetParent() const { return m_pParent.Get(); }
uint32_t CountAttrs() const { return m_AttrMap.GetSize(); }
void GetAttrByIndex(int index,
CFX_ByteString* space,
@@ -104,7 +104,7 @@ class CXML_Element : public CXML_Object {
friend class CXML_Parser;
friend class CXML_Composer;
- const CXML_Element* const m_pParent;
+ CFX_UnownedPtr<const CXML_Element> const m_pParent;
CFX_ByteString m_QSpaceName;
CFX_ByteString m_TagName;
CXML_AttrMap m_AttrMap;
diff --git a/core/fxge/cfx_fontmapper.h b/core/fxge/cfx_fontmapper.h
index 96630a77df..1b262bf0f4 100644
--- a/core/fxge/cfx_fontmapper.h
+++ b/core/fxge/cfx_fontmapper.h
@@ -80,7 +80,7 @@ class CFX_FontMapper {
std::vector<FaceData> m_FaceArray;
std::unique_ptr<IFX_SystemFontInfo> m_pFontInfo;
FXFT_Face m_FoxitFaces[FOXIT_FACE_COUNT];
- CFX_FontMgr* const m_pFontMgr;
+ CFX_UnownedPtr<CFX_FontMgr> const m_pFontMgr;
};
#endif // CORE_FXGE_CFX_FONTMAPPER_H_
diff --git a/core/fxge/dib/cfx_imagestretcher.cpp b/core/fxge/dib/cfx_imagestretcher.cpp
index 809b72d1fb..3c0a065868 100644
--- a/core/fxge/dib/cfx_imagestretcher.cpp
+++ b/core/fxge/dib/cfx_imagestretcher.cpp
@@ -133,8 +133,8 @@ bool CFX_ImageStretcher::Continue(IFX_Pause* pPause) {
bool CFX_ImageStretcher::StartStretch() {
m_pStretchEngine = pdfium::MakeUnique<CStretchEngine>(
- m_pDest, m_DestFormat, m_DestWidth, m_DestHeight, m_ClipRect, m_pSource,
- m_Flags);
+ m_pDest.Get(), m_DestFormat, m_DestWidth, m_DestHeight, m_ClipRect,
+ m_pSource, m_Flags);
m_pStretchEngine->StartStretchHorz();
if (SourceSizeWithinLimit(m_pSource->GetWidth(), m_pSource->GetHeight())) {
m_pStretchEngine->Continue(nullptr);
diff --git a/core/fxge/dib/cfx_imagestretcher.h b/core/fxge/dib/cfx_imagestretcher.h
index 63863cd1a9..45928ee141 100644
--- a/core/fxge/dib/cfx_imagestretcher.h
+++ b/core/fxge/dib/cfx_imagestretcher.h
@@ -37,7 +37,7 @@ class CFX_ImageStretcher {
bool ContinueQuickStretch(IFX_Pause* pPause);
bool ContinueStretch(IFX_Pause* pPause);
- IFX_ScanlineComposer* const m_pDest;
+ CFX_UnownedPtr<IFX_ScanlineComposer> const m_pDest;
CFX_RetainPtr<CFX_DIBSource> m_pSource;
std::unique_ptr<CStretchEngine> m_pStretchEngine;
std::unique_ptr<uint8_t, FxFreeDeleter> m_pScanline;
diff --git a/core/fxge/dib/cfx_imagetransformer.h b/core/fxge/dib/cfx_imagetransformer.h
index 52aca9792e..90f605dce9 100644
--- a/core/fxge/dib/cfx_imagetransformer.h
+++ b/core/fxge/dib/cfx_imagetransformer.h
@@ -33,7 +33,7 @@ class CFX_ImageTransformer {
private:
const CFX_RetainPtr<CFX_DIBSource> m_pSrc;
- const CFX_Matrix* const m_pMatrix;
+ CFX_UnownedPtr<const CFX_Matrix> const m_pMatrix;
const FX_RECT* const m_pClip;
FX_RECT m_StretchClip;
FX_RECT m_result;
diff --git a/fpdfsdk/cpdfsdk_baannot.cpp b/fpdfsdk/cpdfsdk_baannot.cpp
index 129491c210..4f11f77f0b 100644
--- a/fpdfsdk/cpdfsdk_baannot.cpp
+++ b/fpdfsdk/cpdfsdk_baannot.cpp
@@ -27,7 +27,7 @@ CPDFSDK_BAAnnot::CPDFSDK_BAAnnot(CPDF_Annot* pAnnot,
CPDFSDK_BAAnnot::~CPDFSDK_BAAnnot() {}
CPDF_Annot* CPDFSDK_BAAnnot::GetPDFAnnot() const {
- return m_pAnnot;
+ return m_pAnnot.Get();
}
CPDF_Annot* CPDFSDK_BAAnnot::GetPDFPopupAnnot() const {
diff --git a/fpdfsdk/cpdfsdk_baannot.h b/fpdfsdk/cpdfsdk_baannot.h
index 2da5723eb4..4bf8f73823 100644
--- a/fpdfsdk/cpdfsdk_baannot.h
+++ b/fpdfsdk/cpdfsdk_baannot.h
@@ -100,7 +100,7 @@ class CPDFSDK_BAAnnot : public CPDFSDK_Annot {
void SetOpenState(bool bState);
protected:
- CPDF_Annot* const m_pAnnot;
+ CFX_UnownedPtr<CPDF_Annot> const m_pAnnot;
};
#endif // FPDFSDK_CPDFSDK_BAANNOT_H_
diff --git a/fpdfsdk/cpdfsdk_widget.h b/fpdfsdk/cpdfsdk_widget.h
index 9f58cc1d61..a5e5b702dc 100644
--- a/fpdfsdk/cpdfsdk_widget.h
+++ b/fpdfsdk/cpdfsdk_widget.h
@@ -117,7 +117,7 @@ class CPDFSDK_Widget : public CPDFSDK_BAAnnot {
PDFSDK_FieldAction& data,
CPDFSDK_PageView* pPageView);
- CPDFSDK_InterForm* GetInterForm() const { return m_pInterForm; }
+ CPDFSDK_InterForm* GetInterForm() const { return m_pInterForm.Get(); }
CPDF_FormField* GetFormField() const;
CPDF_FormControl* GetFormControl() const;
static CPDF_FormControl* GetFormControl(CPDF_InterForm* pInterForm,
@@ -160,7 +160,7 @@ class CPDFSDK_Widget : public CPDFSDK_BAAnnot {
void AddImageToAppearance(const CFX_ByteString& sAPType, CPDF_Stream* pImage);
void RemoveAppearance(const CFX_ByteString& sAPType);
- CPDFSDK_InterForm* const m_pInterForm;
+ CFX_UnownedPtr<CPDFSDK_InterForm> const m_pInterForm;
bool m_bAppModified;
int32_t m_nAppAge;
int32_t m_nValueAge;
diff --git a/fpdfsdk/fpdfxfa/cpdfxfa_page.h b/fpdfsdk/fpdfxfa/cpdfxfa_page.h
index d990813282..de2d19837d 100644
--- a/fpdfsdk/fpdfxfa/cpdfxfa_page.h
+++ b/fpdfsdk/fpdfxfa/cpdfxfa_page.h
@@ -10,6 +10,7 @@
#include <memory>
#include "core/fxcrt/cfx_retain_ptr.h"
+#include "core/fxcrt/cfx_unowned_ptr.h"
#include "core/fxcrt/fx_system.h"
class CFX_Matrix;
@@ -25,7 +26,7 @@ class CPDFXFA_Page : public CFX_Retainable {
bool LoadPage();
bool LoadPDFPage(CPDF_Dictionary* pageDict);
- CPDFXFA_Context* GetContext() const { return m_pContext; }
+ CPDFXFA_Context* GetContext() const { return m_pContext.Get(); }
int GetPageIndex() const { return m_iPageIndex; }
CPDF_Page* GetPDFPage() const { return m_pPDFPage.get(); }
CXFA_FFPageView* GetXFAPageView() const { return m_pXFAPageView; }
@@ -73,7 +74,7 @@ class CPDFXFA_Page : public CFX_Retainable {
private:
std::unique_ptr<CPDF_Page> m_pPDFPage;
CXFA_FFPageView* m_pXFAPageView;
- CPDFXFA_Context* const m_pContext;
+ CFX_UnownedPtr<CPDFXFA_Context> const m_pContext;
const int m_iPageIndex;
int m_iRef;
};
diff --git a/fpdfsdk/fsdk_pauseadapter.cpp b/fpdfsdk/fsdk_pauseadapter.cpp
index 237266b88b..cf99253ff9 100644
--- a/fpdfsdk/fsdk_pauseadapter.cpp
+++ b/fpdfsdk/fsdk_pauseadapter.cpp
@@ -12,5 +12,5 @@ IFSDK_PAUSE_Adapter::IFSDK_PAUSE_Adapter(IFSDK_PAUSE* IPause)
IFSDK_PAUSE_Adapter::~IFSDK_PAUSE_Adapter() {}
bool IFSDK_PAUSE_Adapter::NeedToPauseNow() {
- return m_IPause->NeedToPauseNow && m_IPause->NeedToPauseNow(m_IPause);
+ return m_IPause->NeedToPauseNow && m_IPause->NeedToPauseNow(m_IPause.Get());
}
diff --git a/fpdfsdk/fsdk_pauseadapter.h b/fpdfsdk/fsdk_pauseadapter.h
index bd302f2613..66a628aa09 100644
--- a/fpdfsdk/fsdk_pauseadapter.h
+++ b/fpdfsdk/fsdk_pauseadapter.h
@@ -19,7 +19,7 @@ class IFSDK_PAUSE_Adapter : public IFX_Pause {
bool NeedToPauseNow() override;
private:
- IFSDK_PAUSE* const m_IPause;
+ CFX_UnownedPtr<IFSDK_PAUSE> const m_IPause;
};
#endif // FPDFSDK_FSDK_PAUSEADAPTER_H_
diff --git a/fpdfsdk/javascript/Document.cpp b/fpdfsdk/javascript/Document.cpp
index 38a4c12177..a760ad9956 100644
--- a/fpdfsdk/javascript/Document.cpp
+++ b/fpdfsdk/javascript/Document.cpp
@@ -1646,5 +1646,5 @@ void Document::DoFieldDelay(const CFX_WideString& sFieldName,
}
CJS_Document* Document::GetCJSDoc() const {
- return static_cast<CJS_Document*>(m_pJSObject);
+ return static_cast<CJS_Document*>(m_pJSObject.Get());
}
diff --git a/fpdfsdk/javascript/JS_Object.h b/fpdfsdk/javascript/JS_Object.h
index 2e5c75c948..e32b8515b5 100644
--- a/fpdfsdk/javascript/JS_Object.h
+++ b/fpdfsdk/javascript/JS_Object.h
@@ -23,10 +23,10 @@ class CJS_EmbedObj {
explicit CJS_EmbedObj(CJS_Object* pJSObject);
virtual ~CJS_EmbedObj();
- CJS_Object* GetJSObject() const { return m_pJSObject; }
+ CJS_Object* GetJSObject() const { return m_pJSObject.Get(); }
protected:
- CJS_Object* const m_pJSObject;
+ CFX_UnownedPtr<CJS_Object> const m_pJSObject;
};
class CJS_Object {
diff --git a/fpdfsdk/javascript/JS_Value.cpp b/fpdfsdk/javascript/JS_Value.cpp
index e9fa9a0fbe..dba0b76115 100644
--- a/fpdfsdk/javascript/JS_Value.cpp
+++ b/fpdfsdk/javascript/JS_Value.cpp
@@ -199,107 +199,107 @@ CJS_PropValue::~CJS_PropValue() {}
void CJS_PropValue::operator<<(int iValue) {
ASSERT(!m_bIsSetting);
- m_Value = CJS_Value(m_pJSRuntime, iValue);
+ m_Value = CJS_Value(m_pJSRuntime.Get(), iValue);
}
void CJS_PropValue::operator>>(int& iValue) const {
ASSERT(m_bIsSetting);
- iValue = m_Value.ToInt(m_pJSRuntime);
+ iValue = m_Value.ToInt(m_pJSRuntime.Get());
}
void CJS_PropValue::operator<<(bool bValue) {
ASSERT(!m_bIsSetting);
- m_Value = CJS_Value(m_pJSRuntime, bValue);
+ m_Value = CJS_Value(m_pJSRuntime.Get(), bValue);
}
void CJS_PropValue::operator>>(bool& bValue) const {
ASSERT(m_bIsSetting);
- bValue = m_Value.ToBool(m_pJSRuntime);
+ bValue = m_Value.ToBool(m_pJSRuntime.Get());
}
void CJS_PropValue::operator<<(double dValue) {
ASSERT(!m_bIsSetting);
- m_Value = CJS_Value(m_pJSRuntime, dValue);
+ m_Value = CJS_Value(m_pJSRuntime.Get(), dValue);
}
void CJS_PropValue::operator>>(double& dValue) const {
ASSERT(m_bIsSetting);
- dValue = m_Value.ToDouble(m_pJSRuntime);
+ dValue = m_Value.ToDouble(m_pJSRuntime.Get());
}
void CJS_PropValue::operator<<(CJS_Object* pObj) {
ASSERT(!m_bIsSetting);
- m_Value = CJS_Value(m_pJSRuntime, pObj);
+ m_Value = CJS_Value(m_pJSRuntime.Get(), pObj);
}
void CJS_PropValue::operator>>(CJS_Object*& ppObj) const {
ASSERT(m_bIsSetting);
- ppObj = m_Value.ToCJSObject(m_pJSRuntime);
+ ppObj = m_Value.ToCJSObject(m_pJSRuntime.Get());
}
void CJS_PropValue::operator<<(CJS_Document* pJsDoc) {
ASSERT(!m_bIsSetting);
- m_Value = CJS_Value(m_pJSRuntime, pJsDoc);
+ m_Value = CJS_Value(m_pJSRuntime.Get(), pJsDoc);
}
void CJS_PropValue::operator>>(CJS_Document*& ppJsDoc) const {
ASSERT(m_bIsSetting);
- ppJsDoc = static_cast<CJS_Document*>(m_Value.ToCJSObject(m_pJSRuntime));
+ ppJsDoc = static_cast<CJS_Document*>(m_Value.ToCJSObject(m_pJSRuntime.Get()));
}
void CJS_PropValue::operator<<(v8::Local<v8::Object> pObj) {
ASSERT(!m_bIsSetting);
- m_Value = CJS_Value(m_pJSRuntime, pObj);
+ m_Value = CJS_Value(m_pJSRuntime.Get(), pObj);
}
void CJS_PropValue::operator>>(v8::Local<v8::Object>& ppObj) const {
ASSERT(m_bIsSetting);
- ppObj = m_Value.ToV8Object(m_pJSRuntime);
+ ppObj = m_Value.ToV8Object(m_pJSRuntime.Get());
}
void CJS_PropValue::operator<<(CFX_ByteString str) {
ASSERT(!m_bIsSetting);
- m_Value = CJS_Value(m_pJSRuntime, str.c_str());
+ m_Value = CJS_Value(m_pJSRuntime.Get(), str.c_str());
}
void CJS_PropValue::operator>>(CFX_ByteString& str) const {
ASSERT(m_bIsSetting);
- str = m_Value.ToCFXByteString(m_pJSRuntime);
+ str = m_Value.ToCFXByteString(m_pJSRuntime.Get());
}
void CJS_PropValue::operator<<(const wchar_t* str) {
ASSERT(!m_bIsSetting);
- m_Value = CJS_Value(m_pJSRuntime, str);
+ m_Value = CJS_Value(m_pJSRuntime.Get(), str);
}
void CJS_PropValue::operator>>(CFX_WideString& wide_string) const {
ASSERT(m_bIsSetting);
- wide_string = m_Value.ToCFXWideString(m_pJSRuntime);
+ wide_string = m_Value.ToCFXWideString(m_pJSRuntime.Get());
}
void CJS_PropValue::operator<<(CFX_WideString wide_string) {
ASSERT(!m_bIsSetting);
- m_Value = CJS_Value(m_pJSRuntime, wide_string.c_str());
+ m_Value = CJS_Value(m_pJSRuntime.Get(), wide_string.c_str());
}
void CJS_PropValue::operator>>(CJS_Array& array) const {
ASSERT(m_bIsSetting);
- m_Value.ConvertToArray(m_pJSRuntime, array);
+ m_Value.ConvertToArray(m_pJSRuntime.Get(), array);
}
void CJS_PropValue::operator<<(CJS_Array& array) {
ASSERT(!m_bIsSetting);
- m_Value = CJS_Value(m_pJSRuntime, array.ToV8Array(m_pJSRuntime));
+ m_Value = CJS_Value(m_pJSRuntime.Get(), array.ToV8Array(m_pJSRuntime.Get()));
}
void CJS_PropValue::operator>>(CJS_Date& date) const {
ASSERT(m_bIsSetting);
- m_Value.ConvertToDate(m_pJSRuntime, date);
+ m_Value.ConvertToDate(m_pJSRuntime.Get(), date);
}
void CJS_PropValue::operator<<(CJS_Date& date) {
ASSERT(!m_bIsSetting);
- m_Value = CJS_Value(m_pJSRuntime, date);
+ m_Value = CJS_Value(m_pJSRuntime.Get(), date);
}
CJS_Array::CJS_Array() {}
diff --git a/fpdfsdk/javascript/JS_Value.h b/fpdfsdk/javascript/JS_Value.h
index 0c19701587..1a6d47fcea 100644
--- a/fpdfsdk/javascript/JS_Value.h
+++ b/fpdfsdk/javascript/JS_Value.h
@@ -89,7 +89,7 @@ class CJS_PropValue {
void StartGetting() { m_bIsSetting = false; }
bool IsSetting() const { return m_bIsSetting; }
bool IsGetting() const { return !m_bIsSetting; }
- CJS_Runtime* GetJSRuntime() const { return m_pJSRuntime; }
+ CJS_Runtime* GetJSRuntime() const { return m_pJSRuntime.Get(); }
CJS_Value* GetJSValue() { return &m_Value; }
// These calls may re-enter JS (and hence invalidate objects).
@@ -118,7 +118,7 @@ class CJS_PropValue {
private:
bool m_bIsSetting;
CJS_Value m_Value;
- CJS_Runtime* const m_pJSRuntime;
+ CFX_UnownedPtr<CJS_Runtime> const m_pJSRuntime;
};
class CJS_Array {
diff --git a/fpdfsdk/pdfwindow/PWL_FontMap.h b/fpdfsdk/pdfwindow/PWL_FontMap.h
index 2a532197cb..ca3ab231bd 100644
--- a/fpdfsdk/pdfwindow/PWL_FontMap.h
+++ b/fpdfsdk/pdfwindow/PWL_FontMap.h
@@ -90,7 +90,7 @@ class CPWL_FontMap : public IPVT_FontMap {
uint8_t nCharset);
std::unique_ptr<CPDF_Document> m_pPDFDoc;
- CFX_SystemHandler* const m_pSystemHandler;
+ CFX_UnownedPtr<CFX_SystemHandler> const m_pSystemHandler;
};
#endif // FPDFSDK_PDFWINDOW_PWL_FONTMAP_H_
diff --git a/fxbarcode/common/reedsolomon/BC_ReedSolomon.cpp b/fxbarcode/common/reedsolomon/BC_ReedSolomon.cpp
index ca65f72043..2be74c7fa3 100644
--- a/fxbarcode/common/reedsolomon/BC_ReedSolomon.cpp
+++ b/fxbarcode/common/reedsolomon/BC_ReedSolomon.cpp
@@ -36,7 +36,7 @@ CBC_ReedSolomonEncoder::~CBC_ReedSolomonEncoder() {}
void CBC_ReedSolomonEncoder::Init() {
m_cachedGenerators.push_back(
- pdfium::MakeUnique<CBC_ReedSolomonGF256Poly>(m_field, 1));
+ pdfium::MakeUnique<CBC_ReedSolomonGF256Poly>(m_field.Get(), 1));
}
CBC_ReedSolomonGF256Poly* CBC_ReedSolomonEncoder::BuildGenerator(
@@ -46,7 +46,7 @@ CBC_ReedSolomonGF256Poly* CBC_ReedSolomonEncoder::BuildGenerator(
for (size_t d = m_cachedGenerators.size(); d <= degree; ++d) {
std::vector<int32_t> temp = {1, m_field->Exp(d - 1)};
CBC_ReedSolomonGF256Poly temp_poly;
- if (!temp_poly.Init(m_field, &temp))
+ if (!temp_poly.Init(m_field.Get(), &temp))
return nullptr;
auto nextGenerator = lastGenerator->Multiply(&temp_poly);
@@ -78,7 +78,7 @@ bool CBC_ReedSolomonEncoder::Encode(std::vector<int32_t>* toEncode,
infoCoefficients[x] = (*toEncode)[x];
CBC_ReedSolomonGF256Poly info;
- if (!info.Init(m_field, &infoCoefficients))
+ if (!info.Init(m_field.Get(), &infoCoefficients))
return false;
auto infoTemp = info.MultiplyByMonomial(ecBytes, 1);
diff --git a/fxbarcode/common/reedsolomon/BC_ReedSolomon.h b/fxbarcode/common/reedsolomon/BC_ReedSolomon.h
index 68d4ee0624..2838e13cee 100644
--- a/fxbarcode/common/reedsolomon/BC_ReedSolomon.h
+++ b/fxbarcode/common/reedsolomon/BC_ReedSolomon.h
@@ -26,7 +26,7 @@ class CBC_ReedSolomonEncoder {
private:
CBC_ReedSolomonGF256Poly* BuildGenerator(size_t degree);
- CBC_ReedSolomonGF256* const m_field;
+ CFX_UnownedPtr<CBC_ReedSolomonGF256> const m_field;
std::vector<std::unique_ptr<CBC_ReedSolomonGF256Poly>> m_cachedGenerators;
};
diff --git a/xfa/fde/cfde_txtedtpage.cpp b/xfa/fde/cfde_txtedtpage.cpp
index f3127e7708..4f1e8fb7f0 100644
--- a/xfa/fde/cfde_txtedtpage.cpp
+++ b/xfa/fde/cfde_txtedtpage.cpp
@@ -38,7 +38,7 @@ CFDE_TxtEdtPage::CFDE_TxtEdtPage(CFDE_TxtEdtEngine* pEngine, int32_t nPageIndex)
CFDE_TxtEdtPage::~CFDE_TxtEdtPage() {}
CFDE_TxtEdtEngine* CFDE_TxtEdtPage::GetEngine() const {
- return m_pEditEngine;
+ return m_pEditEngine.Get();
}
FDE_VISUALOBJTYPE CFDE_TxtEdtPage::GetType() {
diff --git a/xfa/fde/cfde_txtedtpage.h b/xfa/fde/cfde_txtedtpage.h
index c715c45062..aa88801ba7 100644
--- a/xfa/fde/cfde_txtedtpage.h
+++ b/xfa/fde/cfde_txtedtpage.h
@@ -59,7 +59,7 @@ class CFDE_TxtEdtPage : public IFDE_VisualSet {
std::unique_ptr<IFX_CharIter> m_pIter;
std::unique_ptr<CFDE_TxtEdtTextSet> m_pTextSet;
- CFDE_TxtEdtEngine* const m_pEditEngine;
+ CFX_UnownedPtr<CFDE_TxtEdtEngine> const m_pEditEngine;
std::deque<FDE_TEXTEDITPIECE> m_Pieces;
CFDE_TxtEdtParag* m_pBgnParag;
CFDE_TxtEdtParag* m_pEndParag;
diff --git a/xfa/fde/cfde_txtedttextset.cpp b/xfa/fde/cfde_txtedttextset.cpp
index dd68d42618..0785754e1f 100644
--- a/xfa/fde/cfde_txtedttextset.cpp
+++ b/xfa/fde/cfde_txtedttextset.cpp
@@ -60,7 +60,7 @@ int32_t CFDE_TxtEdtTextSet::GetDisplayPos(const FDE_TEXTEDITPIECE& piece,
CFX_TxtBreak* pBreak = pEngine->GetTextBreak();
uint32_t dwLayoutStyle = pBreak->GetLayoutStyles();
FX_TXTRUN tr;
- tr.pAccess = m_pPage;
+ tr.pAccess = m_pPage.Get();
tr.pIdentity = &piece;
tr.iLength = nLength;
tr.pFont = pTextParams->pFont;
@@ -82,7 +82,7 @@ std::vector<CFX_RectF> CFDE_TxtEdtTextSet::GetCharRects(
const FDE_TXTEDTPARAMS* pTextParams = pEngine->GetEditParams();
uint32_t dwLayoutStyle = pEngine->GetTextBreak()->GetLayoutStyles();
FX_TXTRUN tr;
- tr.pAccess = m_pPage;
+ tr.pAccess = m_pPage.Get();
tr.pIdentity = pPiece;
tr.iLength = pPiece->nCount;
tr.pFont = pTextParams->pFont;
diff --git a/xfa/fde/cfde_txtedttextset.h b/xfa/fde/cfde_txtedttextset.h
index 8e4c4d01bf..29303373da 100644
--- a/xfa/fde/cfde_txtedttextset.h
+++ b/xfa/fde/cfde_txtedttextset.h
@@ -34,7 +34,7 @@ class CFDE_TxtEdtTextSet : public IFDE_VisualSet {
bool bBBox);
private:
- CFDE_TxtEdtPage* const m_pPage;
+ CFX_UnownedPtr<CFDE_TxtEdtPage> const m_pPage;
};
#endif // XFA_FDE_CFDE_TXTEDTTEXTSET_H_
diff --git a/xfa/fde/css/cfde_cssstyleselector.cpp b/xfa/fde/css/cfde_cssstyleselector.cpp
index 024c8a86e2..461192e976 100644
--- a/xfa/fde/css/cfde_cssstyleselector.cpp
+++ b/xfa/fde/css/cfde_cssstyleselector.cpp
@@ -48,7 +48,7 @@ void CFDE_CSSStyleSelector::SetUAStyleSheet(
void CFDE_CSSStyleSelector::UpdateStyleIndex() {
m_UARules.Clear();
- m_UARules.AddRulesFrom(m_UAStyles.get(), m_pFontMgr);
+ m_UARules.AddRulesFrom(m_UAStyles.get(), m_pFontMgr.Get());
}
std::vector<const CFDE_CSSDeclaration*>
diff --git a/xfa/fde/css/cfde_cssstyleselector.h b/xfa/fde/css/cfde_cssstyleselector.h
index 0783e72541..6f40c968c7 100644
--- a/xfa/fde/css/cfde_cssstyleselector.h
+++ b/xfa/fde/css/cfde_cssstyleselector.h
@@ -78,7 +78,7 @@ class CFDE_CSSStyleSelector {
uint32_t ToTextDecoration(const CFX_RetainPtr<CFDE_CSSValueList>& pList);
FDE_CSSFontVariant ToFontVariant(FDE_CSSPropertyValue eValue);
- CFGAS_FontMgr* const m_pFontMgr;
+ CFX_UnownedPtr<CFGAS_FontMgr> const m_pFontMgr;
float m_fDefFontSize;
std::unique_ptr<CFDE_CSSStyleSheet> m_UAStyles;
CFDE_CSSRuleCollection m_UARules;
diff --git a/xfa/fwl/cfwl_app.h b/xfa/fwl/cfwl_app.h
index c2779e8a25..04f140f451 100644
--- a/xfa/fwl/cfwl_app.h
+++ b/xfa/fwl/cfwl_app.h
@@ -32,12 +32,12 @@ class CFWL_App {
explicit CFWL_App(CXFA_FFApp* pAdapter);
~CFWL_App();
- CXFA_FFApp* GetAdapterNative() const { return m_pAdapterNative; }
+ CXFA_FFApp* GetAdapterNative() const { return m_pAdapterNative.Get(); }
CFWL_WidgetMgr* GetWidgetMgr() const { return m_pWidgetMgr.get(); }
CFWL_NoteDriver* GetNoteDriver() const { return m_pNoteDriver.get(); }
private:
- CXFA_FFApp* const m_pAdapterNative;
+ CFX_UnownedPtr<CXFA_FFApp> const m_pAdapterNative;
std::unique_ptr<CFWL_WidgetMgr> m_pWidgetMgr;
std::unique_ptr<CFWL_NoteDriver> m_pNoteDriver;
};
diff --git a/xfa/fwl/cfwl_combobox.cpp b/xfa/fwl/cfwl_combobox.cpp
index b5931d1c04..ba72d3d2b2 100644
--- a/xfa/fwl/cfwl_combobox.cpp
+++ b/xfa/fwl/cfwl_combobox.cpp
@@ -49,12 +49,12 @@ CFWL_ComboBox::CFWL_ComboBox(const CFWL_App* app)
auto prop = pdfium::MakeUnique<CFWL_WidgetProperties>();
prop->m_pThemeProvider = m_pProperties->m_pThemeProvider;
prop->m_dwStyles |= FWL_WGTSTYLE_Border | FWL_WGTSTYLE_VScroll;
- m_pListBox =
- pdfium::MakeUnique<CFWL_ComboList>(m_pOwnerApp, std::move(prop), this);
+ m_pListBox = pdfium::MakeUnique<CFWL_ComboList>(m_pOwnerApp.Get(),
+ std::move(prop), this);
if ((m_pProperties->m_dwStyleExes & FWL_STYLEEXT_CMB_DropDown) && !m_pEdit) {
m_pEdit = pdfium::MakeUnique<CFWL_ComboEdit>(
- m_pOwnerApp, pdfium::MakeUnique<CFWL_WidgetProperties>(), this);
+ m_pOwnerApp.Get(), pdfium::MakeUnique<CFWL_WidgetProperties>(), this);
m_pEdit->SetOuter(this);
}
if (m_pEdit)
@@ -92,7 +92,8 @@ void CFWL_ComboBox::ModifyStylesEx(uint32_t dwStylesExAdded,
bool bRemoveDropDown = !!(dwStylesExRemoved & FWL_STYLEEXT_CMB_DropDown);
if (bAddDropDown && !m_pEdit) {
m_pEdit = pdfium::MakeUnique<CFWL_ComboEdit>(
- m_pOwnerApp, pdfium::MakeUnique<CFWL_WidgetProperties>(), nullptr);
+ m_pOwnerApp.Get(), pdfium::MakeUnique<CFWL_WidgetProperties>(),
+ nullptr);
m_pEdit->SetOuter(this);
m_pEdit->SetParent(this);
} else if (bRemoveDropDown && m_pEdit) {
@@ -496,8 +497,8 @@ void CFWL_ComboBox::InitProxyForm() {
// TODO(dsinclair): Does this leak? I don't see a delete, but I'm not sure
// if the SetParent call is going to transfer ownership.
- m_pComboBoxProxy = new CFWL_ComboBoxProxy(this, m_pOwnerApp, std::move(prop),
- m_pListBox.get());
+ m_pComboBoxProxy = new CFWL_ComboBoxProxy(this, m_pOwnerApp.Get(),
+ std::move(prop), m_pListBox.get());
m_pListBox->SetParent(m_pComboBoxProxy);
}
@@ -510,8 +511,8 @@ void CFWL_ComboBox::DisForm_InitComboList() {
prop->m_dwStyles = FWL_WGTSTYLE_Border | FWL_WGTSTYLE_VScroll;
prop->m_dwStates = FWL_WGTSTATE_Invisible;
prop->m_pThemeProvider = m_pProperties->m_pThemeProvider;
- m_pListBox =
- pdfium::MakeUnique<CFWL_ComboList>(m_pOwnerApp, std::move(prop), this);
+ m_pListBox = pdfium::MakeUnique<CFWL_ComboList>(m_pOwnerApp.Get(),
+ std::move(prop), this);
}
void CFWL_ComboBox::DisForm_InitComboEdit() {
@@ -522,8 +523,8 @@ void CFWL_ComboBox::DisForm_InitComboEdit() {
prop->m_pParent = this;
prop->m_pThemeProvider = m_pProperties->m_pThemeProvider;
- m_pEdit =
- pdfium::MakeUnique<CFWL_ComboEdit>(m_pOwnerApp, std::move(prop), this);
+ m_pEdit = pdfium::MakeUnique<CFWL_ComboEdit>(m_pOwnerApp.Get(),
+ std::move(prop), this);
m_pEdit->SetOuter(this);
}
diff --git a/xfa/fwl/cfwl_datetimepicker.cpp b/xfa/fwl/cfwl_datetimepicker.cpp
index e1d3a748d6..a49785e987 100644
--- a/xfa/fwl/cfwl_datetimepicker.cpp
+++ b/xfa/fwl/cfwl_datetimepicker.cpp
@@ -40,8 +40,8 @@ CFWL_DateTimePicker::CFWL_DateTimePicker(const CFWL_App* app)
monthProp->m_dwStates = FWL_WGTSTATE_Invisible;
monthProp->m_pParent = this;
monthProp->m_pThemeProvider = m_pProperties->m_pThemeProvider;
- m_pMonthCal.reset(
- new CFWL_MonthCalendar(m_pOwnerApp, std::move(monthProp), this));
+ m_pMonthCal = pdfium::MakeUnique<CFWL_MonthCalendar>(
+ m_pOwnerApp.Get(), std::move(monthProp), this);
m_pMonthCal->SetWidgetRect(
CFX_RectF(0, 0, m_pMonthCal->GetAutosizedWidgetRect().Size()));
@@ -50,7 +50,7 @@ CFWL_DateTimePicker::CFWL_DateTimePicker(const CFWL_App* app)
editProp->m_pParent = this;
editProp->m_pThemeProvider = m_pProperties->m_pThemeProvider;
- m_pEdit = pdfium::MakeUnique<CFWL_DateTimeEdit>(m_pOwnerApp,
+ m_pEdit = pdfium::MakeUnique<CFWL_DateTimeEdit>(m_pOwnerApp.Get(),
std::move(editProp), this);
RegisterEventTarget(m_pMonthCal.get());
RegisterEventTarget(m_pEdit.get());
@@ -332,8 +332,8 @@ void CFWL_DateTimePicker::InitProxyForm() {
prop->m_dwStates = FWL_WGTSTATE_Invisible;
prop->m_pOwner = this;
- m_pForm = pdfium::MakeUnique<CFWL_FormProxy>(m_pOwnerApp, std::move(prop),
- m_pMonthCal.get());
+ m_pForm = pdfium::MakeUnique<CFWL_FormProxy>(
+ m_pOwnerApp.Get(), std::move(prop), m_pMonthCal.get());
m_pMonthCal->SetParent(m_pForm.get());
}
diff --git a/xfa/fwl/cfwl_edit.cpp b/xfa/fwl/cfwl_edit.cpp
index 28948cca21..eff76ffabf 100644
--- a/xfa/fwl/cfwl_edit.cpp
+++ b/xfa/fwl/cfwl_edit.cpp
@@ -1063,8 +1063,8 @@ void CFWL_Edit::InitVerticalScrollBar() {
prop->m_dwStates = FWL_WGTSTATE_Disabled | FWL_WGTSTATE_Invisible;
prop->m_pParent = this;
prop->m_pThemeProvider = m_pProperties->m_pThemeProvider;
- m_pVertScrollBar =
- pdfium::MakeUnique<CFWL_ScrollBar>(m_pOwnerApp, std::move(prop), this);
+ m_pVertScrollBar = pdfium::MakeUnique<CFWL_ScrollBar>(m_pOwnerApp.Get(),
+ std::move(prop), this);
}
void CFWL_Edit::InitHorizontalScrollBar() {
@@ -1076,8 +1076,8 @@ void CFWL_Edit::InitHorizontalScrollBar() {
prop->m_dwStates = FWL_WGTSTATE_Disabled | FWL_WGTSTATE_Invisible;
prop->m_pParent = this;
prop->m_pThemeProvider = m_pProperties->m_pThemeProvider;
- m_pHorzScrollBar =
- pdfium::MakeUnique<CFWL_ScrollBar>(m_pOwnerApp, std::move(prop), this);
+ m_pHorzScrollBar = pdfium::MakeUnique<CFWL_ScrollBar>(m_pOwnerApp.Get(),
+ std::move(prop), this);
}
void CFWL_Edit::ShowCaret(CFX_RectF* pRect) {
diff --git a/xfa/fwl/cfwl_listbox.cpp b/xfa/fwl/cfwl_listbox.cpp
index 9d9bf72f4c..0fd43efa08 100644
--- a/xfa/fwl/cfwl_listbox.cpp
+++ b/xfa/fwl/cfwl_listbox.cpp
@@ -630,8 +630,8 @@ void CFWL_ListBox::InitVerticalScrollBar() {
prop->m_dwStates = FWL_WGTSTATE_Invisible;
prop->m_pParent = this;
prop->m_pThemeProvider = m_pScrollBarTP;
- m_pVertScrollBar =
- pdfium::MakeUnique<CFWL_ScrollBar>(m_pOwnerApp, std::move(prop), this);
+ m_pVertScrollBar = pdfium::MakeUnique<CFWL_ScrollBar>(m_pOwnerApp.Get(),
+ std::move(prop), this);
}
void CFWL_ListBox::InitHorizontalScrollBar() {
@@ -643,8 +643,8 @@ void CFWL_ListBox::InitHorizontalScrollBar() {
prop->m_dwStates = FWL_WGTSTATE_Invisible;
prop->m_pParent = this;
prop->m_pThemeProvider = m_pScrollBarTP;
- m_pHorzScrollBar =
- pdfium::MakeUnique<CFWL_ScrollBar>(m_pOwnerApp, std::move(prop), this);
+ m_pHorzScrollBar = pdfium::MakeUnique<CFWL_ScrollBar>(m_pOwnerApp.Get(),
+ std::move(prop), this);
}
bool CFWL_ListBox::IsShowScrollBar(bool bVert) {
diff --git a/xfa/fwl/cfwl_widget.h b/xfa/fwl/cfwl_widget.h
index dd8fb5654b..9bcbf55cbc 100644
--- a/xfa/fwl/cfwl_widget.h
+++ b/xfa/fwl/cfwl_widget.h
@@ -104,7 +104,7 @@ class CFWL_Widget : public IFWL_WidgetDelegate {
return m_pDelegate ? m_pDelegate.Get() : this;
}
- const CFWL_App* GetOwnerApp() const { return m_pOwnerApp; }
+ const CFWL_App* GetOwnerApp() const { return m_pOwnerApp.Get(); }
uint32_t GetEventKey() const { return m_nEventKey; }
void SetEventKey(uint32_t key) { m_nEventKey = key; }
@@ -148,8 +148,8 @@ class CFWL_Widget : public IFWL_WidgetDelegate {
IFWL_ThemeProvider* pTheme,
const CFX_Matrix* pMatrix);
- const CFWL_App* const m_pOwnerApp;
- CFWL_WidgetMgr* const m_pWidgetMgr;
+ CFX_UnownedPtr<const CFWL_App> const m_pOwnerApp;
+ CFX_UnownedPtr<CFWL_WidgetMgr> const m_pWidgetMgr;
std::unique_ptr<CFWL_WidgetProperties> m_pProperties;
CFWL_Widget* m_pOuter;
int32_t m_iLock;
diff --git a/xfa/fwl/cfwl_widgetmgr.h b/xfa/fwl/cfwl_widgetmgr.h
index c3dca31d76..4c12e707f6 100644
--- a/xfa/fwl/cfwl_widgetmgr.h
+++ b/xfa/fwl/cfwl_widgetmgr.h
@@ -116,7 +116,7 @@ class CFWL_WidgetMgr : public CFWL_WidgetMgrDelegate {
uint32_t m_dwCapability;
std::map<CFWL_Widget*, std::unique_ptr<Item>> m_mapWidgetItem;
- CXFA_FWLAdapterWidgetMgr* const m_pAdapter;
+ CFX_UnownedPtr<CXFA_FWLAdapterWidgetMgr> const m_pAdapter;
#if (_FX_OS_ == _FX_WIN32_DESKTOP_) || (_FX_OS_ == _FX_WIN64_)
CFX_RectF m_rtScreen;
#endif
diff --git a/xfa/fxfa/app/xfa_ffcheckbutton.cpp b/xfa/fxfa/app/xfa_ffcheckbutton.cpp
index 9837e0aa7b..76531cecdd 100644
--- a/xfa/fxfa/app/xfa_ffcheckbutton.cpp
+++ b/xfa/fxfa/app/xfa_ffcheckbutton.cpp
@@ -320,7 +320,7 @@ void CXFA_FFCheckButton::OnProcessEvent(CFWL_Event* pEvent) {
m_pDocView->AddCalculateWidgetAcc(pFFExclGroup);
pFFExclGroup->ProcessEvent(XFA_ATTRIBUTEENUM_Change, &eParam);
}
- eParam.m_pTarget = m_pDataAcc;
+ eParam.m_pTarget = m_pDataAcc.Get();
m_pDataAcc->ProcessEvent(XFA_ATTRIBUTEENUM_Change, &eParam);
} else {
SetFWLCheckState(m_pDataAcc->GetCheckState());
@@ -329,7 +329,7 @@ void CXFA_FFCheckButton::OnProcessEvent(CFWL_Event* pEvent) {
eParam.m_pTarget = pFFExclGroup;
pFFExclGroup->ProcessEvent(XFA_ATTRIBUTEENUM_Click, &eParam);
}
- eParam.m_pTarget = m_pDataAcc;
+ eParam.m_pTarget = m_pDataAcc.Get();
m_pDataAcc->ProcessEvent(XFA_ATTRIBUTEENUM_Click, &eParam);
break;
}
diff --git a/xfa/fxfa/app/xfa_ffchoicelist.cpp b/xfa/fxfa/app/xfa_ffchoicelist.cpp
index b191f838ce..e24e7f77b7 100644
--- a/xfa/fxfa/app/xfa_ffchoicelist.cpp
+++ b/xfa/fxfa/app/xfa_ffchoicelist.cpp
@@ -166,7 +166,7 @@ bool CXFA_FFListBox::UpdateFWLData() {
void CXFA_FFListBox::OnSelectChanged(CFWL_Widget* pWidget) {
CXFA_EventParam eParam;
eParam.m_eType = XFA_EVENT_Change;
- eParam.m_pTarget = m_pDataAcc;
+ eParam.m_pTarget = m_pDataAcc.Get();
m_pDataAcc->GetValue(eParam.m_wsPrevText, XFA_VALUEPICTURE_Raw);
auto* pListBox = ToListBox(m_pNormalWidget.get());
@@ -342,7 +342,7 @@ bool CXFA_FFComboBox::IsDataChanged() {
void CXFA_FFComboBox::FWLEventSelChange(CXFA_EventParam* pParam) {
pParam->m_eType = XFA_EVENT_Change;
- pParam->m_pTarget = m_pDataAcc;
+ pParam->m_pTarget = m_pDataAcc.Get();
pParam->m_wsNewText = ToComboBox(m_pNormalWidget.get())->GetEditText();
m_pDataAcc->ProcessEvent(XFA_ATTRIBUTEENUM_Change, pParam);
}
@@ -514,14 +514,14 @@ void CXFA_FFComboBox::OnSelectChanged(CFWL_Widget* pWidget, bool bLButtonUp) {
void CXFA_FFComboBox::OnPreOpen(CFWL_Widget* pWidget) {
CXFA_EventParam eParam;
eParam.m_eType = XFA_EVENT_PreOpen;
- eParam.m_pTarget = m_pDataAcc;
+ eParam.m_pTarget = m_pDataAcc.Get();
m_pDataAcc->ProcessEvent(XFA_ATTRIBUTEENUM_PreOpen, &eParam);
}
void CXFA_FFComboBox::OnPostOpen(CFWL_Widget* pWidget) {
CXFA_EventParam eParam;
eParam.m_eType = XFA_EVENT_PostOpen;
- eParam.m_pTarget = m_pDataAcc;
+ eParam.m_pTarget = m_pDataAcc.Get();
m_pDataAcc->ProcessEvent(XFA_ATTRIBUTEENUM_PostOpen, &eParam);
}
diff --git a/xfa/fxfa/app/xfa_fffield.cpp b/xfa/fxfa/app/xfa_fffield.cpp
index 186f573182..425ba30843 100644
--- a/xfa/fxfa/app/xfa_fffield.cpp
+++ b/xfa/fxfa/app/xfa_fffield.cpp
@@ -639,14 +639,14 @@ bool CXFA_FFField::ProcessCommittedData() {
return false;
m_pDocView->SetChangeMark();
- m_pDocView->AddValidateWidget(m_pDataAcc);
+ m_pDocView->AddValidateWidget(m_pDataAcc.Get());
return true;
}
int32_t CXFA_FFField::CalculateOverride() {
CXFA_WidgetAcc* pAcc = m_pDataAcc->GetExclGroup();
if (!pAcc)
- return CalculateWidgetAcc(m_pDataAcc);
+ return CalculateWidgetAcc(m_pDataAcc.Get());
if (CalculateWidgetAcc(pAcc) == 0)
return 0;
@@ -745,26 +745,26 @@ void CXFA_FFField::OnProcessMessage(CFWL_Message* pMessage) {}
void CXFA_FFField::OnProcessEvent(CFWL_Event* pEvent) {
switch (pEvent->GetType()) {
case CFWL_Event::Type::Mouse: {
- CFWL_EventMouse* event = (CFWL_EventMouse*)pEvent;
+ CFWL_EventMouse* event = static_cast<CFWL_EventMouse*>(pEvent);
if (event->m_dwCmd == FWL_MouseCommand::Enter) {
CXFA_EventParam eParam;
eParam.m_eType = XFA_EVENT_MouseEnter;
- eParam.m_pTarget = m_pDataAcc;
+ eParam.m_pTarget = m_pDataAcc.Get();
m_pDataAcc->ProcessEvent(XFA_ATTRIBUTEENUM_MouseEnter, &eParam);
} else if (event->m_dwCmd == FWL_MouseCommand::Leave) {
CXFA_EventParam eParam;
eParam.m_eType = XFA_EVENT_MouseExit;
- eParam.m_pTarget = m_pDataAcc;
+ eParam.m_pTarget = m_pDataAcc.Get();
m_pDataAcc->ProcessEvent(XFA_ATTRIBUTEENUM_MouseExit, &eParam);
} else if (event->m_dwCmd == FWL_MouseCommand::LeftButtonDown) {
CXFA_EventParam eParam;
eParam.m_eType = XFA_EVENT_MouseDown;
- eParam.m_pTarget = m_pDataAcc;
+ eParam.m_pTarget = m_pDataAcc.Get();
m_pDataAcc->ProcessEvent(XFA_ATTRIBUTEENUM_MouseDown, &eParam);
} else if (event->m_dwCmd == FWL_MouseCommand::LeftButtonUp) {
CXFA_EventParam eParam;
eParam.m_eType = XFA_EVENT_MouseUp;
- eParam.m_pTarget = m_pDataAcc;
+ eParam.m_pTarget = m_pDataAcc.Get();
m_pDataAcc->ProcessEvent(XFA_ATTRIBUTEENUM_MouseUp, &eParam);
}
break;
@@ -772,7 +772,7 @@ void CXFA_FFField::OnProcessEvent(CFWL_Event* pEvent) {
case CFWL_Event::Type::Click: {
CXFA_EventParam eParam;
eParam.m_eType = XFA_EVENT_Click;
- eParam.m_pTarget = m_pDataAcc;
+ eParam.m_pTarget = m_pDataAcc.Get();
m_pDataAcc->ProcessEvent(XFA_ATTRIBUTEENUM_Click, &eParam);
break;
}
diff --git a/xfa/fxfa/app/xfa_ffnotify.cpp b/xfa/fxfa/app/xfa_ffnotify.cpp
index 475fa09eda..b07b625538 100644
--- a/xfa/fxfa/app/xfa_ffnotify.cpp
+++ b/xfa/fxfa/app/xfa_ffnotify.cpp
@@ -251,7 +251,7 @@ void CXFA_FFNotify::AddCalcValidate(CXFA_Node* pNode) {
}
CXFA_FFDoc* CXFA_FFNotify::GetHDOC() {
- return m_pDoc;
+ return m_pDoc.Get();
}
IXFA_DocEnvironment* CXFA_FFNotify::GetDocEnvironment() const {
@@ -468,7 +468,7 @@ void CXFA_FFNotify::OnChildAdded(CXFA_Node* pSender) {
!(pDocView->m_bInLayoutStatus) &&
(pDocView->GetLayoutStatus() == XFA_DOCVIEW_LAYOUTSTATUS_End);
if (bLayoutReady)
- m_pDoc->GetDocEnvironment()->SetChangeMark(m_pDoc);
+ m_pDoc->GetDocEnvironment()->SetChangeMark(m_pDoc.Get());
}
void CXFA_FFNotify::OnChildRemoved() {
@@ -480,7 +480,7 @@ void CXFA_FFNotify::OnChildRemoved() {
!(pDocView->m_bInLayoutStatus) &&
(pDocView->GetLayoutStatus() == XFA_DOCVIEW_LAYOUTSTATUS_End);
if (bLayoutReady)
- m_pDoc->GetDocEnvironment()->SetChangeMark(m_pDoc);
+ m_pDoc->GetDocEnvironment()->SetChangeMark(m_pDoc.Get());
}
void CXFA_FFNotify::OnLayoutItemAdded(CXFA_LayoutProcessor* pLayout,
diff --git a/xfa/fxfa/app/xfa_ffnotify.h b/xfa/fxfa/app/xfa_ffnotify.h
index c002ed4c15..930d3b6a90 100644
--- a/xfa/fxfa/app/xfa_ffnotify.h
+++ b/xfa/fxfa/app/xfa_ffnotify.h
@@ -71,7 +71,7 @@ class CXFA_FFNotify {
void SetFocusWidgetNode(CXFA_Node* pNode);
private:
- CXFA_FFDoc* const m_pDoc;
+ CFX_UnownedPtr<CXFA_FFDoc> const m_pDoc;
};
#endif // XFA_FXFA_APP_XFA_FFNOTIFY_H_
diff --git a/xfa/fxfa/app/xfa_ffpushbutton.cpp b/xfa/fxfa/app/xfa_ffpushbutton.cpp
index 9d9cf070b4..b596996b6c 100644
--- a/xfa/fxfa/app/xfa_ffpushbutton.cpp
+++ b/xfa/fxfa/app/xfa_ffpushbutton.cpp
@@ -141,7 +141,7 @@ void CXFA_FFPushButton::LoadHighlightCaption() {
if (m_pDataAcc->GetButtonRollover(wsRollover, bRichText)) {
if (!m_pRollProvider) {
m_pRollProvider = pdfium::MakeUnique<CXFA_TextProvider>(
- m_pDataAcc, XFA_TEXTPROVIDERTYPE_Rollover);
+ m_pDataAcc.Get(), XFA_TEXTPROVIDERTYPE_Rollover);
}
m_pRolloverTextLayout =
pdfium::MakeUnique<CXFA_TextLayout>(m_pRollProvider.get());
@@ -150,7 +150,7 @@ void CXFA_FFPushButton::LoadHighlightCaption() {
if (m_pDataAcc->GetButtonDown(wsDown, bRichText)) {
if (!m_pDownProvider) {
m_pDownProvider = pdfium::MakeUnique<CXFA_TextProvider>(
- m_pDataAcc, XFA_TEXTPROVIDERTYPE_Down);
+ m_pDataAcc.Get(), XFA_TEXTPROVIDERTYPE_Down);
}
m_pDownTextLayout =
pdfium::MakeUnique<CXFA_TextLayout>(m_pDownProvider.get());
diff --git a/xfa/fxfa/app/xfa_fftextedit.cpp b/xfa/fxfa/app/xfa_fftextedit.cpp
index a1030f538a..41305efcc8 100644
--- a/xfa/fxfa/app/xfa_fftextedit.cpp
+++ b/xfa/fxfa/app/xfa_fftextedit.cpp
@@ -307,7 +307,7 @@ void CXFA_FFTextEdit::OnTextChanged(CFWL_Widget* pWidget,
CXFA_EventParam eParam;
eParam.m_eType = XFA_EVENT_Change;
eParam.m_wsChange = wsChanged;
- eParam.m_pTarget = m_pDataAcc;
+ eParam.m_pTarget = m_pDataAcc.Get();
eParam.m_wsPrevText = wsPrevText;
CFWL_Edit* pEdit = static_cast<CFWL_Edit*>(m_pNormalWidget.get());
if (m_pDataAcc->GetUIType() == XFA_Element::DateTimeEdit) {
@@ -328,7 +328,7 @@ void CXFA_FFTextEdit::OnTextChanged(CFWL_Widget* pWidget,
void CXFA_FFTextEdit::OnTextFull(CFWL_Widget* pWidget) {
CXFA_EventParam eParam;
eParam.m_eType = XFA_EVENT_Full;
- eParam.m_pTarget = m_pDataAcc;
+ eParam.m_pTarget = m_pDataAcc.Get();
m_pDataAcc->ProcessEvent(XFA_ATTRIBUTEENUM_Full, &eParam);
}
@@ -450,7 +450,7 @@ bool CXFA_FFNumericEdit::OnValidate(CFWL_Widget* pWidget,
m_pDataAcc->GetFracDigits(iFracs);
CFX_WideString wsFormat;
- CXFA_LocaleValue widgetValue = XFA_GetLocaleValue(m_pDataAcc);
+ CXFA_LocaleValue widgetValue = XFA_GetLocaleValue(m_pDataAcc.Get());
widgetValue.GetNumbericFormat(wsFormat, iLeads, iFracs);
return widgetValue.ValidateNumericTemp(wsText, wsFormat,
m_pDataAcc->GetLocal());
@@ -545,7 +545,7 @@ bool CXFA_FFDateTimeEdit::LoadWidget() {
switch (value.GetChildValueClassID()) {
case XFA_Element::Date: {
if (!wsText.IsEmpty()) {
- CXFA_LocaleValue lcValue = XFA_GetLocaleValue(m_pDataAcc);
+ CXFA_LocaleValue lcValue = XFA_GetLocaleValue(m_pDataAcc.Get());
CFX_DateTime date = lcValue.GetDate();
if (date.IsSet())
pWidget->SetCurSel(date.GetYear(), date.GetMonth(), date.GetDay());
@@ -647,7 +647,7 @@ bool CXFA_FFDateTimeEdit::UpdateFWLData() {
auto* normalWidget = static_cast<CFWL_DateTimePicker*>(m_pNormalWidget.get());
normalWidget->SetEditText(wsText);
if (IsFocused() && !wsText.IsEmpty()) {
- CXFA_LocaleValue lcValue = XFA_GetLocaleValue(m_pDataAcc);
+ CXFA_LocaleValue lcValue = XFA_GetLocaleValue(m_pDataAcc.Get());
CFX_DateTime date = lcValue.GetDate();
if (lcValue.IsValid()) {
if (date.IsSet())
@@ -690,7 +690,7 @@ void CXFA_FFDateTimeEdit::OnSelectChanged(CFWL_Widget* pWidget,
CXFA_EventParam eParam;
eParam.m_eType = XFA_EVENT_Change;
- eParam.m_pTarget = m_pDataAcc;
+ eParam.m_pTarget = m_pDataAcc.Get();
m_pDataAcc->GetValue(eParam.m_wsNewText, XFA_VALUEPICTURE_Raw);
m_pDataAcc->ProcessEvent(XFA_ATTRIBUTEENUM_Change, &eParam);
}
diff --git a/xfa/fxfa/app/xfa_fwltheme.h b/xfa/fxfa/app/xfa_fwltheme.h
index 33ea8e80a5..7563c69ed9 100644
--- a/xfa/fxfa/app/xfa_fwltheme.h
+++ b/xfa/fxfa/app/xfa_fwltheme.h
@@ -61,7 +61,7 @@ class CXFA_FWLTheme final : public IFWL_ThemeProvider {
std::unique_ptr<CFDE_TextOut> m_pTextOut;
CFX_RetainPtr<CFGAS_GEFont> m_pCalendarFont;
CFX_WideString m_wsResource;
- CXFA_FFApp* const m_pApp;
+ CFX_UnownedPtr<CXFA_FFApp> const m_pApp;
CFX_RectF m_Rect;
};
diff --git a/xfa/fxfa/cxfa_ffapp.h b/xfa/fxfa/cxfa_ffapp.h
index 1ae2073d82..0da4e79173 100644
--- a/xfa/fxfa/cxfa_ffapp.h
+++ b/xfa/fxfa/cxfa_ffapp.h
@@ -40,7 +40,7 @@ class CXFA_FFApp {
CFGAS_FontMgr* GetFDEFontMgr();
CXFA_FWLTheme* GetFWLTheme();
- IXFA_AppProvider* GetAppProvider() const { return m_pProvider; }
+ IXFA_AppProvider* GetAppProvider() const { return m_pProvider.Get(); }
const CFWL_App* GetFWLApp() const { return m_pFWLApp.get(); }
IFWL_AdapterTimerMgr* GetTimerMgr() const;
CXFA_FontMgr* GetXFAFontMgr() const;
@@ -52,7 +52,7 @@ class CXFA_FFApp {
private:
std::unique_ptr<CXFA_FFDocHandler> m_pDocHandler;
- IXFA_AppProvider* const m_pProvider;
+ CFX_UnownedPtr<IXFA_AppProvider> const m_pProvider;
// The fonts stored in the font manager may have been created by the default
// font manager. The GEFont::LoadFont call takes the manager as a param and
diff --git a/xfa/fxfa/cxfa_ffpageview.cpp b/xfa/fxfa/cxfa_ffpageview.cpp
index d027a83ce1..c83ffaea7e 100644
--- a/xfa/fxfa/cxfa_ffpageview.cpp
+++ b/xfa/fxfa/cxfa_ffpageview.cpp
@@ -115,7 +115,7 @@ CXFA_FFPageView::CXFA_FFPageView(CXFA_FFDocView* pDocView, CXFA_Node* pPageArea)
CXFA_FFPageView::~CXFA_FFPageView() {}
CXFA_FFDocView* CXFA_FFPageView::GetDocView() const {
- return m_pDocView;
+ return m_pDocView.Get();
}
CFX_RectF CXFA_FFPageView::GetPageViewRect() const {
diff --git a/xfa/fxfa/cxfa_ffpageview.h b/xfa/fxfa/cxfa_ffpageview.h
index 01409f3403..f2451fbd26 100644
--- a/xfa/fxfa/cxfa_ffpageview.h
+++ b/xfa/fxfa/cxfa_ffpageview.h
@@ -31,7 +31,7 @@ class CXFA_FFPageView : public CXFA_ContainerLayoutItem {
uint32_t dwWidgetFilter);
protected:
- CXFA_FFDocView* const m_pDocView;
+ CFX_UnownedPtr<CXFA_FFDocView> const m_pDocView;
};
using CXFA_LayoutItemIterator =
@@ -68,11 +68,11 @@ class CXFA_TabParam {
void AppendTabParam(CXFA_TabParam* pParam);
void ClearChildren();
- CXFA_FFWidget* GetWidget() { return m_pWidget; }
+ CXFA_FFWidget* GetWidget() const { return m_pWidget.Get(); }
const std::vector<CXFA_FFWidget*>& GetChildren() const { return m_Children; }
private:
- CXFA_FFWidget* const m_pWidget;
+ CFX_UnownedPtr<CXFA_FFWidget> const m_pWidget;
std::vector<CXFA_FFWidget*> m_Children;
};
diff --git a/xfa/fxfa/cxfa_ffwidget.cpp b/xfa/fxfa/cxfa_ffwidget.cpp
index 78bc5ed598..9de99255ab 100644
--- a/xfa/fxfa/cxfa_ffwidget.cpp
+++ b/xfa/fxfa/cxfa_ffwidget.cpp
@@ -98,7 +98,7 @@ CFX_RectF CXFA_FFWidget::GetBBox(uint32_t dwStatus, bool bDrawFocus) {
}
CXFA_WidgetAcc* CXFA_FFWidget::GetDataAcc() {
- return m_pDataAcc;
+ return m_pDataAcc.Get();
}
bool CXFA_FFWidget::GetToolTip(CFX_WideString& wsToolTip) {
@@ -238,7 +238,7 @@ bool CXFA_FFWidget::OnSetFocus(CXFA_FFWidget* pOldWidget) {
m_dwStatus |= XFA_WidgetStatus_Focused;
CXFA_EventParam eParam;
eParam.m_eType = XFA_EVENT_Enter;
- eParam.m_pTarget = m_pDataAcc;
+ eParam.m_pTarget = m_pDataAcc.Get();
m_pDataAcc->ProcessEvent(XFA_ATTRIBUTEENUM_Enter, &eParam);
return true;
}
@@ -490,7 +490,7 @@ void CXFA_FFWidget::EventKillFocus() {
}
CXFA_EventParam eParam;
eParam.m_eType = XFA_EVENT_Exit;
- eParam.m_pTarget = m_pDataAcc;
+ eParam.m_pTarget = m_pDataAcc.Get();
m_pDataAcc->ProcessEvent(XFA_ATTRIBUTEENUM_Exit, &eParam);
}
bool CXFA_FFWidget::IsButtonDown() {
diff --git a/xfa/fxfa/cxfa_ffwidget.h b/xfa/fxfa/cxfa_ffwidget.h
index 2ca27c1303..b7bb123bda 100644
--- a/xfa/fxfa/cxfa_ffwidget.h
+++ b/xfa/fxfa/cxfa_ffwidget.h
@@ -185,7 +185,7 @@ class CXFA_FFWidget : public CXFA_ContentLayoutItem {
CXFA_FFDocView* m_pDocView;
CXFA_FFPageView* m_pPageView;
- CXFA_WidgetAcc* const m_pDataAcc;
+ CFX_UnownedPtr<CXFA_WidgetAcc> const m_pDataAcc;
mutable CFX_RectF m_rtWidget;
};
diff --git a/xfa/fxfa/cxfa_pdffontmgr.h b/xfa/fxfa/cxfa_pdffontmgr.h
index d0a824067a..df8ab28e08 100644
--- a/xfa/fxfa/cxfa_pdffontmgr.h
+++ b/xfa/fxfa/cxfa_pdffontmgr.h
@@ -50,7 +50,7 @@ class CXFA_PDFFontMgr : public CFX_Observable<CXFA_PDFFontMgr> {
const CFX_ByteString& bsDRFontName,
bool bStrictMatch);
- CXFA_FFDoc* const m_pDoc;
+ CFX_UnownedPtr<CXFA_FFDoc> const m_pDoc;
std::map<CFX_RetainPtr<CFGAS_GEFont>, CPDF_Font*> m_FDE2PDFFont;
std::map<CFX_ByteString, CFX_RetainPtr<CFGAS_GEFont>> m_FontMap;
};
diff --git a/xfa/fxfa/fm2js/cxfa_fm2jscontext.h b/xfa/fxfa/fm2js/cxfa_fm2jscontext.h
index 0de3cc74b5..63fc0f42bd 100644
--- a/xfa/fxfa/fm2js/cxfa_fm2jscontext.h
+++ b/xfa/fxfa/fm2js/cxfa_fm2jscontext.h
@@ -434,7 +434,7 @@ class CXFA_FM2JSContext : public CFXJSE_HostObject {
private:
v8::Isolate* GetScriptRuntime() const { return m_pIsolate; }
- CXFA_Document* GetDocument() const { return m_pDocument; }
+ CXFA_Document* GetDocument() const { return m_pDocument.Get(); }
void ThrowNoDefaultPropertyException(const CFX_ByteStringC& name) const;
void ThrowCompilerErrorException() const;
@@ -449,7 +449,7 @@ class CXFA_FM2JSContext : public CFXJSE_HostObject {
v8::Isolate* m_pIsolate;
CFXJSE_Class* m_pFMClass;
std::unique_ptr<CFXJSE_Value> m_pValue;
- CXFA_Document* const m_pDocument;
+ CFX_UnownedPtr<CXFA_Document> const m_pDocument;
};
#endif // XFA_FXFA_FM2JS_CXFA_FM2JSCONTEXT_H_
diff --git a/xfa/fxfa/parser/cscript_layoutpseudomodel.cpp b/xfa/fxfa/parser/cscript_layoutpseudomodel.cpp
index 693d4029a3..6e6a1086ff 100644
--- a/xfa/fxfa/parser/cscript_layoutpseudomodel.cpp
+++ b/xfa/fxfa/parser/cscript_layoutpseudomodel.cpp
@@ -368,7 +368,8 @@ void CScript_LayoutPseudoModel::PageContent(CFXJSE_Arguments* pArguments) {
if (!pDocLayout)
return;
- auto pArrayNodeList = pdfium::MakeUnique<CXFA_ArrayNodeList>(m_pDocument);
+ auto pArrayNodeList =
+ pdfium::MakeUnique<CXFA_ArrayNodeList>(m_pDocument.Get());
pArrayNodeList->SetArrayNodeList(
GetObjArray(pDocLayout, iIndex, wsType, bOnPageArea));
pArguments->GetReturnValue()->SetObject(
diff --git a/xfa/fxfa/parser/cxfa_dataexporter.cpp b/xfa/fxfa/parser/cxfa_dataexporter.cpp
index dda93a36fc..49a1f5857b 100644
--- a/xfa/fxfa/parser/cxfa_dataexporter.cpp
+++ b/xfa/fxfa/parser/cxfa_dataexporter.cpp
@@ -458,6 +458,8 @@ CXFA_DataExporter::CXFA_DataExporter(CXFA_Document* pDocument)
ASSERT(m_pDocument);
}
+CXFA_DataExporter::~CXFA_DataExporter() {}
+
bool CXFA_DataExporter::Export(
const CFX_RetainPtr<IFX_SeekableStream>& pWrite) {
return Export(pWrite, m_pDocument->GetRoot(), 0, nullptr);
diff --git a/xfa/fxfa/parser/cxfa_dataexporter.h b/xfa/fxfa/parser/cxfa_dataexporter.h
index cd949be964..4c0d90af9e 100644
--- a/xfa/fxfa/parser/cxfa_dataexporter.h
+++ b/xfa/fxfa/parser/cxfa_dataexporter.h
@@ -18,6 +18,7 @@ class CFX_SeekableStreamProxy;
class CXFA_DataExporter {
public:
explicit CXFA_DataExporter(CXFA_Document* pDocument);
+ ~CXFA_DataExporter();
bool Export(const CFX_RetainPtr<IFX_SeekableStream>& pWrite);
bool Export(const CFX_RetainPtr<IFX_SeekableStream>& pWrite,
@@ -31,7 +32,7 @@ class CXFA_DataExporter {
uint32_t dwFlag,
const char* pChecksum);
- CXFA_Document* const m_pDocument;
+ CFX_UnownedPtr<CXFA_Document> const m_pDocument;
};
#endif // XFA_FXFA_PARSER_CXFA_DATAEXPORTER_H_
diff --git a/xfa/fxfa/parser/cxfa_dataimporter.cpp b/xfa/fxfa/parser/cxfa_dataimporter.cpp
index d83b92b08d..e4ae3d0796 100644
--- a/xfa/fxfa/parser/cxfa_dataimporter.cpp
+++ b/xfa/fxfa/parser/cxfa_dataimporter.cpp
@@ -22,10 +22,12 @@ CXFA_DataImporter::CXFA_DataImporter(CXFA_Document* pDocument)
ASSERT(m_pDocument);
}
+CXFA_DataImporter::~CXFA_DataImporter() {}
+
bool CXFA_DataImporter::ImportData(
const CFX_RetainPtr<IFX_SeekableStream>& pDataDocument) {
auto pDataDocumentParser =
- pdfium::MakeUnique<CXFA_SimpleParser>(m_pDocument, false);
+ pdfium::MakeUnique<CXFA_SimpleParser>(m_pDocument.Get(), false);
if (pDataDocumentParser->StartParse(pDataDocument, XFA_XDPPACKET_Datasets) !=
XFA_PARSESTATUS_Ready) {
return false;
diff --git a/xfa/fxfa/parser/cxfa_dataimporter.h b/xfa/fxfa/parser/cxfa_dataimporter.h
index e76475cd1e..d3af1de517 100644
--- a/xfa/fxfa/parser/cxfa_dataimporter.h
+++ b/xfa/fxfa/parser/cxfa_dataimporter.h
@@ -8,6 +8,7 @@
#define XFA_FXFA_PARSER_CXFA_DATAIMPORTER_H_
#include "core/fxcrt/cfx_retain_ptr.h"
+#include "core/fxcrt/cfx_unowned_ptr.h"
#include "core/fxcrt/fx_system.h"
class CXFA_Document;
@@ -16,11 +17,12 @@ class IFX_SeekableStream;
class CXFA_DataImporter {
public:
explicit CXFA_DataImporter(CXFA_Document* pDocument);
+ ~CXFA_DataImporter();
bool ImportData(const CFX_RetainPtr<IFX_SeekableStream>& pDataDocument);
private:
- CXFA_Document* const m_pDocument;
+ CFX_UnownedPtr<CXFA_Document> const m_pDocument;
};
#endif // XFA_FXFA_PARSER_CXFA_DATAIMPORTER_H_
diff --git a/xfa/fxfa/parser/cxfa_layoutprocessor.cpp b/xfa/fxfa/parser/cxfa_layoutprocessor.cpp
index 0fbae9e368..765f8b2fe7 100644
--- a/xfa/fxfa/parser/cxfa_layoutprocessor.cpp
+++ b/xfa/fxfa/parser/cxfa_layoutprocessor.cpp
@@ -24,7 +24,7 @@ CXFA_LayoutProcessor::CXFA_LayoutProcessor(CXFA_Document* pDocument)
CXFA_LayoutProcessor::~CXFA_LayoutProcessor() {}
CXFA_Document* CXFA_LayoutProcessor::GetDocument() const {
- return m_pDocument;
+ return m_pDocument.Get();
}
int32_t CXFA_LayoutProcessor::StartLayout(bool bForceRestart) {
diff --git a/xfa/fxfa/parser/cxfa_layoutprocessor.h b/xfa/fxfa/parser/cxfa_layoutprocessor.h
index 5a48560f26..360a9df685 100644
--- a/xfa/fxfa/parser/cxfa_layoutprocessor.h
+++ b/xfa/fxfa/parser/cxfa_layoutprocessor.h
@@ -10,6 +10,7 @@
#include <memory>
#include <vector>
+#include "core/fxcrt/cfx_unowned_ptr.h"
#include "core/fxcrt/fx_system.h"
class CXFA_ContainerLayoutItem;
@@ -44,7 +45,7 @@ class CXFA_LayoutProcessor {
private:
bool IsNeedLayout();
- CXFA_Document* const m_pDocument;
+ CFX_UnownedPtr<CXFA_Document> const m_pDocument;
std::unique_ptr<CXFA_ItemLayoutProcessor> m_pRootItemLayoutProcessor;
std::unique_ptr<CXFA_LayoutPageMgr> m_pLayoutPageMgr;
std::vector<CXFA_Node*> m_rgChangedContainers;
diff --git a/xfa/fxfa/parser/cxfa_node.cpp b/xfa/fxfa/parser/cxfa_node.cpp
index e7ec4cf890..2daa49e066 100644
--- a/xfa/fxfa/parser/cxfa_node.cpp
+++ b/xfa/fxfa/parser/cxfa_node.cpp
@@ -1040,7 +1040,7 @@ void CXFA_Node::Script_Som_ResolveNodeList(CFXJSE_Value* pValue,
refNode = this;
pScriptContext->ResolveObjects(refNode, wsExpression.AsStringC(),
resoveNodeRS, dwFlag);
- CXFA_ArrayNodeList* pNodeList = new CXFA_ArrayNodeList(m_pDocument);
+ CXFA_ArrayNodeList* pNodeList = new CXFA_ArrayNodeList(m_pDocument.Get());
if (resoveNodeRS.dwFlags == XFA_RESOVENODE_RSTYPE_Nodes) {
for (CXFA_Object* pObject : resoveNodeRS.objects) {
if (pObject->IsNode())
@@ -1083,7 +1083,8 @@ void CXFA_Node::Script_TreeClass_Nodes(CFXJSE_Value* pValue,
CFX_WideString wsMessage = L"Unable to set ";
FXJSE_ThrowMessage(wsMessage.UTF8Encode().AsStringC());
} else {
- CXFA_AttachNodeList* pNodeList = new CXFA_AttachNodeList(m_pDocument, this);
+ CXFA_AttachNodeList* pNodeList =
+ new CXFA_AttachNodeList(m_pDocument.Get(), this);
pValue->SetObject(pNodeList, pScriptContext->GetJseNormalClass());
}
}
@@ -1282,7 +1283,8 @@ void CXFA_Node::Script_NodeClass_LoadXML(CFXJSE_Arguments* pArguments) {
bIgnoreRoot = !!pArguments->GetInt32(1);
if (iLength >= 3)
bOverwrite = !!pArguments->GetInt32(2);
- auto pParser = pdfium::MakeUnique<CXFA_SimpleParser>(m_pDocument, false);
+ auto pParser =
+ pdfium::MakeUnique<CXFA_SimpleParser>(m_pDocument.Get(), false);
if (!pParser)
return;
CFX_XMLNode* pXMLNode = pParser->ParseXMLData(wsExpression);
@@ -1524,7 +1526,7 @@ void CXFA_Node::Script_NodeClass_OneOfChild(CFXJSE_Value* pValue,
void CXFA_Node::Script_ContainerClass_GetDelta(CFXJSE_Arguments* pArguments) {}
void CXFA_Node::Script_ContainerClass_GetDeltas(CFXJSE_Arguments* pArguments) {
- CXFA_ArrayNodeList* pFormNodes = new CXFA_ArrayNodeList(m_pDocument);
+ CXFA_ArrayNodeList* pFormNodes = new CXFA_ArrayNodeList(m_pDocument.Get());
pArguments->GetReturnValue()->SetObject(
pFormNodes, m_pDocument->GetScriptContext()->GetJseNormalClass());
}
@@ -3269,7 +3271,7 @@ void CXFA_Node::Script_Form_FormNodes(CFXJSE_Arguments* pArguments) {
}
std::vector<CXFA_Node*> formItems;
- CXFA_ArrayNodeList* pFormNodes = new CXFA_ArrayNodeList(m_pDocument);
+ CXFA_ArrayNodeList* pFormNodes = new CXFA_ArrayNodeList(m_pDocument.Get());
pFormNodes->SetArrayNodeList(formItems);
pArguments->GetReturnValue()->SetObject(
pFormNodes, m_pDocument->GetScriptContext()->GetJseNormalClass());
diff --git a/xfa/fxfa/parser/cxfa_nodelocale.h b/xfa/fxfa/parser/cxfa_nodelocale.h
index 2465650b47..e051bb6ac3 100644
--- a/xfa/fxfa/parser/cxfa_nodelocale.h
+++ b/xfa/fxfa/parser/cxfa_nodelocale.h
@@ -47,7 +47,7 @@ class CXFA_NodeLocale : public IFX_Locale {
int index,
bool bAbbr) const;
- CXFA_Node* const m_pLocale;
+ CFX_UnownedPtr<CXFA_Node> const m_pLocale;
};
#endif // XFA_FXFA_PARSER_CXFA_NODELOCALE_H_
diff --git a/xfa/fxfa/parser/cxfa_object.h b/xfa/fxfa/parser/cxfa_object.h
index 9596453712..4f1850f14c 100644
--- a/xfa/fxfa/parser/cxfa_object.h
+++ b/xfa/fxfa/parser/cxfa_object.h
@@ -38,7 +38,7 @@ class CXFA_Object : public CFXJSE_HostObject {
const CFX_WideStringC& elementName);
~CXFA_Object() override;
- CXFA_Document* GetDocument() const { return m_pDocument; }
+ CXFA_Document* GetDocument() const { return m_pDocument.Get(); }
XFA_ObjectType GetObjectType() const { return m_objectType; }
bool IsNode() const {
@@ -86,7 +86,7 @@ class CXFA_Object : public CFXJSE_HostObject {
protected:
void ThrowException(const wchar_t* str, ...) const;
- CXFA_Document* const m_pDocument;
+ CFX_UnownedPtr<CXFA_Document> const m_pDocument;
const XFA_ObjectType m_objectType;
const XFA_Element m_elementType;
diff --git a/xfa/fxfa/parser/cxfa_scriptcontext.cpp b/xfa/fxfa/parser/cxfa_scriptcontext.cpp
index cf6467e240..49da63eee3 100644
--- a/xfa/fxfa/parser/cxfa_scriptcontext.cpp
+++ b/xfa/fxfa/parser/cxfa_scriptcontext.cpp
@@ -150,7 +150,7 @@ bool CXFA_ScriptContext::RunScript(XFA_SCRIPTLANGTYPE eScriptType,
if (eScriptType == XFA_SCRIPTLANGTYPE_Formcalc) {
if (!m_FM2JSContext) {
m_FM2JSContext = pdfium::MakeUnique<CXFA_FM2JSContext>(
- m_pIsolate, m_JsContext.get(), m_pDocument);
+ m_pIsolate, m_JsContext.get(), m_pDocument.Get());
}
CFX_WideTextBuf wsJavaScript;
if (!CXFA_FM2JSContext::Translate(wsScript, &wsJavaScript)) {
diff --git a/xfa/fxfa/parser/cxfa_scriptcontext.h b/xfa/fxfa/parser/cxfa_scriptcontext.h
index d3a9609769..45e6897a4c 100644
--- a/xfa/fxfa/parser/cxfa_scriptcontext.h
+++ b/xfa/fxfa/parser/cxfa_scriptcontext.h
@@ -92,7 +92,7 @@ class CXFA_ScriptContext {
bool IsStrictScopeInJavaScript();
XFA_SCRIPTLANGTYPE GetType();
std::vector<CXFA_Node*>* GetUpObjectArray() { return &m_upObjectArray; }
- CXFA_Document* GetDocument() const { return m_pDocument; }
+ CXFA_Document* GetDocument() const { return m_pDocument.Get(); }
static CXFA_Object* ToObject(CFXJSE_Value* pValue, CFXJSE_Class* pClass);
@@ -103,7 +103,7 @@ class CXFA_ScriptContext {
void DefineJsClass();
void RemoveBuiltInObjs(CFXJSE_Context* pContext) const;
- CXFA_Document* const m_pDocument;
+ CFX_UnownedPtr<CXFA_Document> const m_pDocument;
std::unique_ptr<CFXJSE_Context> m_JsContext;
v8::Isolate* m_pIsolate;
CFXJSE_Class* m_pJsClass;