diff options
author | Tom Sepez <tsepez@chromium.org> | 2016-03-09 13:24:25 -0800 |
---|---|---|
committer | Tom Sepez <tsepez@chromium.org> | 2016-03-09 13:24:25 -0800 |
commit | 4f6fdbe6adf0d90886b9deb5666996603cf1207c (patch) | |
tree | 4fee37f0d6711efbfdebbb72e0ba1746c95ad05e /xfa/src/fde/css/fde_cssdeclaration.h | |
parent | 2e95951e06bd4d11459fb257c7c2b8fc881854e8 (diff) | |
download | pdfium-4f6fdbe6adf0d90886b9deb5666996603cf1207c.tar.xz |
Structs shouldn't inherit from CFX_Target.
There are some assumptions in the code that CAPS_NAMED
structs are POD, and can be memcpy'd, malloc'd, etc.
CFX_Target adds a virtual dtor, which is not what is
desired for many of these, so resolve by making each
a CAPS_Named class or by removing the inheritence.
In the process XFA_TextPiece was found to be malloc'd
despite having a ctor. Move this to |new|, noting that
the object is never freed (and goes out of existence
when the allocator's pool is destroyed).
BUG=pdfium:432
R=dsinclair@chromium.org
Review URL: https://codereview.chromium.org/1780753002 .
Diffstat (limited to 'xfa/src/fde/css/fde_cssdeclaration.h')
-rw-r--r-- | xfa/src/fde/css/fde_cssdeclaration.h | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/xfa/src/fde/css/fde_cssdeclaration.h b/xfa/src/fde/css/fde_cssdeclaration.h index 42aee9ea13..9866b20f4c 100644 --- a/xfa/src/fde/css/fde_cssdeclaration.h +++ b/xfa/src/fde/css/fde_cssdeclaration.h @@ -9,20 +9,22 @@ #include "xfa/src/fde/css/fde_cssdatatable.h" -struct FDE_CSSPROPERTYHOLDER : public CFX_Target { +class FDE_CSSPropertyHolder : public CFX_Target { + public: int16_t eProperty; int16_t bImportant; IFDE_CSSValue* pValue; - FDE_CSSPROPERTYHOLDER* pNext; + FDE_CSSPropertyHolder* pNext; }; -struct FDE_CSSCUSTOMPROPERTY : public CFX_Target { +class FDE_CSSCustomProperty : public CFX_Target { + public: const FX_WCHAR* pwsName; const FX_WCHAR* pwsValue; - FDE_CSSCUSTOMPROPERTY* pNext; + FDE_CSSCustomProperty* pNext; }; -struct FDE_CSSPROPERTYARGS : public CFX_Target { +struct FDE_CSSPROPERTYARGS { IFX_MEMAllocator* pStaticStore; CFX_MapPtrToPtr* pStringCache; FDE_LPCCSSPROPERTYTABLE pProperty; @@ -147,10 +149,10 @@ class CFDE_CSSDeclaration : public IFDE_CSSDeclaration, public CFX_Target { FX_FLOAT fValue) const; IFDE_CSSPrimitiveValue* NewEnumValue(IFX_MEMAllocator* pStaticStore, FDE_CSSPROPERTYVALUE eValue) const; - FDE_CSSPROPERTYHOLDER* m_pFirstProperty; - FDE_CSSPROPERTYHOLDER* m_pLastProperty; - FDE_CSSCUSTOMPROPERTY* m_pFirstCustom; - FDE_CSSCUSTOMPROPERTY* m_pLastCustom; + FDE_CSSPropertyHolder* m_pFirstProperty; + FDE_CSSPropertyHolder* m_pLastProperty; + FDE_CSSCustomProperty* m_pFirstCustom; + FDE_CSSCustomProperty* m_pLastCustom; }; #endif // XFA_SRC_FDE_CSS_FDE_CSSDECLARATION_H_ |