summaryrefslogtreecommitdiff
path: root/xfa/src/fde/css/fde_cssdeclaration.h
diff options
context:
space:
mode:
authorTom Sepez <tsepez@chromium.org>2016-03-09 13:24:25 -0800
committerTom Sepez <tsepez@chromium.org>2016-03-09 13:24:25 -0800
commit4f6fdbe6adf0d90886b9deb5666996603cf1207c (patch)
tree4fee37f0d6711efbfdebbb72e0ba1746c95ad05e /xfa/src/fde/css/fde_cssdeclaration.h
parent2e95951e06bd4d11459fb257c7c2b8fc881854e8 (diff)
downloadpdfium-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.h20
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_