summaryrefslogtreecommitdiff
path: root/xfa/fde
diff options
context:
space:
mode:
authorDan Sinclair <dsinclair@chromium.org>2017-01-23 16:24:26 -0500
committerChromium commit bot <commit-bot@chromium.org>2017-01-24 15:05:29 +0000
commit7e5fdd0b1a2ce17e89723fee3e58ae472e32461f (patch)
treee8e14a43410d3d159cef27a0140c4fa8a633f8db /xfa/fde
parentaee2d80f628ba02d0561c921b7bb1939b3480fca (diff)
downloadpdfium-7e5fdd0b1a2ce17e89723fee3e58ae472e32461f.tar.xz
Track CFDE_CSSComputedStyle with retained ptrs
Remove the bare new and use CFX_RetainPtr to keep track of the computed styles. Change-Id: Icf235623529797176707482c78676814b7a81b9e Reviewed-on: https://pdfium-review.googlesource.com/2292 Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'xfa/fde')
-rw-r--r--xfa/fde/css/cfde_csscomputedstyle.cpp13
-rw-r--r--xfa/fde/css/cfde_csscomputedstyle.h16
-rw-r--r--xfa/fde/css/cfde_cssstyleselector.cpp5
-rw-r--r--xfa/fde/css/cfde_cssstyleselector.h2
4 files changed, 12 insertions, 24 deletions
diff --git a/xfa/fde/css/cfde_csscomputedstyle.cpp b/xfa/fde/css/cfde_csscomputedstyle.cpp
index 010f573c04..b563bbf445 100644
--- a/xfa/fde/css/cfde_csscomputedstyle.cpp
+++ b/xfa/fde/css/cfde_csscomputedstyle.cpp
@@ -10,21 +10,10 @@
#include "xfa/fde/css/cfde_cssstringvalue.h"
#include "xfa/fde/css/cfde_cssvaluelist.h"
-CFDE_CSSComputedStyle::CFDE_CSSComputedStyle() : m_dwRefCount(1) {}
+CFDE_CSSComputedStyle::CFDE_CSSComputedStyle() {}
CFDE_CSSComputedStyle::~CFDE_CSSComputedStyle() {}
-uint32_t CFDE_CSSComputedStyle::Retain() {
- return ++m_dwRefCount;
-}
-
-uint32_t CFDE_CSSComputedStyle::Release() {
- uint32_t dwRefCount = --m_dwRefCount;
- if (dwRefCount == 0)
- delete this;
- return dwRefCount;
-}
-
bool CFDE_CSSComputedStyle::GetCustomStyle(const CFX_WideStringC& wsName,
CFX_WideString& wsValue) const {
for (int32_t i = pdfium::CollectionSize<int32_t>(m_CustomProperties) - 2;
diff --git a/xfa/fde/css/cfde_csscomputedstyle.h b/xfa/fde/css/cfde_csscomputedstyle.h
index 73eb996f0d..1f73d87631 100644
--- a/xfa/fde/css/cfde_csscomputedstyle.h
+++ b/xfa/fde/css/cfde_csscomputedstyle.h
@@ -15,7 +15,7 @@
class CFDE_CSSValueList;
-class CFDE_CSSComputedStyle : public IFX_Retainable {
+class CFDE_CSSComputedStyle : public CFX_Retainable {
public:
class InheritedData {
public:
@@ -54,13 +54,6 @@ class CFDE_CSSComputedStyle : public IFX_Retainable {
bool m_bHasPadding;
};
- CFDE_CSSComputedStyle();
- ~CFDE_CSSComputedStyle() override;
-
- // IFX_Retainable
- uint32_t Retain() override;
- uint32_t Release() override;
-
int32_t CountFontFamilies() const;
const CFX_WideString GetFontFamily(int32_t index) const;
uint16_t GetFontWeight() const;
@@ -105,7 +98,12 @@ class CFDE_CSSComputedStyle : public IFX_Retainable {
NonInheritedData m_NonInheritedData;
private:
- uint32_t m_dwRefCount;
+ template <typename T, typename... Args>
+ friend CFX_RetainPtr<T> pdfium::MakeRetain(Args&&... args);
+
+ CFDE_CSSComputedStyle();
+ ~CFDE_CSSComputedStyle() override;
+
std::vector<CFX_WideString> m_CustomProperties;
};
diff --git a/xfa/fde/css/cfde_cssstyleselector.cpp b/xfa/fde/css/cfde_cssstyleselector.cpp
index 63d8e0986b..1b4aa0e13b 100644
--- a/xfa/fde/css/cfde_cssstyleselector.cpp
+++ b/xfa/fde/css/cfde_cssstyleselector.cpp
@@ -55,9 +55,9 @@ CFDE_CSSAccelerator* CFDE_CSSStyleSelector::InitAccelerator() {
return m_pAccelerator.get();
}
-CFDE_CSSComputedStyle* CFDE_CSSStyleSelector::CreateComputedStyle(
+CFX_RetainPtr<CFDE_CSSComputedStyle> CFDE_CSSStyleSelector::CreateComputedStyle(
CFDE_CSSComputedStyle* pParentStyle) {
- CFDE_CSSComputedStyle* pStyle = new CFDE_CSSComputedStyle();
+ auto pStyle = pdfium::MakeRetain<CFDE_CSSComputedStyle>();
if (pParentStyle)
pStyle->m_InheritedData = pParentStyle->m_InheritedData;
return pStyle;
@@ -77,6 +77,7 @@ int32_t CFDE_CSSStyleSelector::MatchDeclarations(
CXFA_CSSTagProvider* pTag,
CFX_ArrayTemplate<CFDE_CSSDeclaration*>& matchedDecls) {
ASSERT(pTag);
+
CFDE_CSSTagCache* pCache = m_pAccelerator->top();
ASSERT(pCache && pCache->GetTag() == pTag);
diff --git a/xfa/fde/css/cfde_cssstyleselector.h b/xfa/fde/css/cfde_cssstyleselector.h
index 2b03d7e961..c2262d7aa7 100644
--- a/xfa/fde/css/cfde_cssstyleselector.h
+++ b/xfa/fde/css/cfde_cssstyleselector.h
@@ -37,7 +37,7 @@ class CFDE_CSSStyleSelector {
void UpdateStyleIndex();
CFDE_CSSAccelerator* InitAccelerator();
- CFDE_CSSComputedStyle* CreateComputedStyle(
+ CFX_RetainPtr<CFDE_CSSComputedStyle> CreateComputedStyle(
CFDE_CSSComputedStyle* pParentStyle);
int32_t MatchDeclarations(
CXFA_CSSTagProvider* pTag,