summaryrefslogtreecommitdiff
path: root/xfa/fde/css/cfde_cssstyleselector.h
diff options
context:
space:
mode:
authorTom Sepez <tsepez@chromium.org>2017-02-27 17:08:28 -0800
committerChromium commit bot <commit-bot@chromium.org>2017-02-28 13:58:23 +0000
commita11ac1bedef8c7a55b7e35ec89f5bdcbfcdc5025 (patch)
tree1b9fcddfa49697f90a5090bbc701a60639b05ee0 /xfa/fde/css/cfde_cssstyleselector.h
parent8f2fa901ed692f95a134b2bed6a0af3ec14e06df (diff)
downloadpdfium-a11ac1bedef8c7a55b7e35ec89f5bdcbfcdc5025.tar.xz
Avoid crash above CFWL_ListItem::GetText()
The issue at hand is caused by a raw pointer rather than a retained pointer in InheritedData::m_pFontFamily. But the larger issue is that it's bad to Get() raw pointers from these, especially when its so cheap to pass them by const reference. One reason to Get() a raw pointer is to aid in down-casts, so add a helper to CFX_RetainPtr to give us downcasted retained pointers. BUG=pdfium:665 Change-Id: Ic8624af09664ff603de2e1fda8dbde0cf889f80d Reviewed-on: https://pdfium-review.googlesource.com/2871 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'xfa/fde/css/cfde_cssstyleselector.h')
-rw-r--r--xfa/fde/css/cfde_cssstyleselector.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/xfa/fde/css/cfde_cssstyleselector.h b/xfa/fde/css/cfde_cssstyleselector.h
index b4eaa685ae..c7b6b4164a 100644
--- a/xfa/fde/css/cfde_cssstyleselector.h
+++ b/xfa/fde/css/cfde_cssstyleselector.h
@@ -58,7 +58,7 @@ class CFDE_CSSStyleSelector {
const CFDE_CSSDeclaration* extraDecl,
CFDE_CSSComputedStyle* pDestStyle);
void ApplyProperty(FDE_CSSProperty eProperty,
- CFDE_CSSValue* pValue,
+ const CFX_RetainPtr<CFDE_CSSValue>& pValue,
CFDE_CSSComputedStyle* pComputedStyle);
void ExtractValues(const CFDE_CSSDeclaration* decl,
std::vector<const CFDE_CSSPropertyHolder*>* importants,
@@ -67,7 +67,7 @@ class CFDE_CSSStyleSelector {
bool SetLengthWithPercent(FDE_CSSLength& width,
FDE_CSSPrimitiveType eType,
- CFDE_CSSValue* pValue,
+ const CFX_RetainPtr<CFDE_CSSValue>& pValue,
FX_FLOAT fFontSize);
FX_FLOAT ToFontSize(FDE_CSSPropertyValue eValue, FX_FLOAT fCurFontSize);
FDE_CSSDisplay ToDisplay(FDE_CSSPropertyValue eValue);
@@ -75,7 +75,7 @@ class CFDE_CSSStyleSelector {
uint16_t ToFontWeight(FDE_CSSPropertyValue eValue);
FDE_CSSFontStyle ToFontStyle(FDE_CSSPropertyValue eValue);
FDE_CSSVerticalAlign ToVerticalAlign(FDE_CSSPropertyValue eValue);
- uint32_t ToTextDecoration(CFDE_CSSValueList* pList);
+ uint32_t ToTextDecoration(const CFX_RetainPtr<CFDE_CSSValueList>& pList);
FDE_CSSFontVariant ToFontVariant(FDE_CSSPropertyValue eValue);
CFGAS_FontMgr* const m_pFontMgr;