summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Collingbourne <pcc@google.com>2018-06-14 18:56:08 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-06-14 18:56:08 +0000
commitbb3d6313f278feee76f5fba17feff3aee65fb928 (patch)
tree3e7803327967b320fee588e31f51c6983efa6da4
parent27cf78d88fdb44bd246cd17bcc712225388e9134 (diff)
downloadpdfium-bb3d6313f278feee76f5fba17feff3aee65fb928.tar.xz
Move definition of XFA_SCRIPTATTRIBUTEINFO into cjx_object.h.
This allows compilers targeting the MS ABI to select the correct inheritance model for the member function pointer type XFA_ATTRIBUTE_CALLBACK using the complete type of CJX_Object. It will allow us to enable the new Clang flag -fcomplete-member-pointers globally. Bug: chromium:847724 Change-Id: I90cedde8c5355e5eb896a93f0e43e6a1e1d09dbc Reviewed-on: https://pdfium-review.googlesource.com/35190 Commit-Queue: Tom Sepez <tsepez@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
-rw-r--r--fxjs/xfa/cjx_object.h13
-rw-r--r--xfa/fxfa/fxfa_basic.h13
2 files changed, 14 insertions, 12 deletions
diff --git a/fxjs/xfa/cjx_object.h b/fxjs/xfa/cjx_object.h
index 1c5e40514e..44df6c4c5a 100644
--- a/fxjs/xfa/cjx_object.h
+++ b/fxjs/xfa/cjx_object.h
@@ -22,6 +22,7 @@
class CFXJSE_Value;
class CFX_V8;
+class CJX_Object;
class CXFA_CalcData;
class CXFA_Document;
class CXFA_LayoutItem;
@@ -285,4 +286,16 @@ class CJX_Object {
size_t calc_recursion_count_ = 0;
};
+typedef void (CJX_Object::*XFA_ATTRIBUTE_CALLBACK)(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute);
+
+struct XFA_SCRIPTATTRIBUTEINFO {
+ uint32_t uHash;
+ const wchar_t* pName;
+ XFA_ATTRIBUTE_CALLBACK callback;
+ XFA_Attribute attribute;
+ XFA_ScriptType eValueType;
+};
+
#endif // FXJS_XFA_CJX_OBJECT_H_
diff --git a/xfa/fxfa/fxfa_basic.h b/xfa/fxfa/fxfa_basic.h
index d040bb3873..78392d52ce 100644
--- a/xfa/fxfa/fxfa_basic.h
+++ b/xfa/fxfa/fxfa_basic.h
@@ -9,9 +9,9 @@
#include "fxjs/fxjse.h"
-class CJX_Object;
class CXFA_Measurement;
enum class XFA_ObjectType;
+struct XFA_SCRIPTATTRIBUTEINFO;
enum XFA_HashCode : uint32_t {
XFA_HASHCODE_None = 0,
@@ -964,20 +964,9 @@ enum class XFA_Unit : uint8_t {
Unknown = 255,
};
-typedef void (CJX_Object::*XFA_ATTRIBUTE_CALLBACK)(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
enum class XFA_ScriptType : uint8_t {
Basic,
Object,
};
-struct XFA_SCRIPTATTRIBUTEINFO {
- uint32_t uHash;
- const wchar_t* pName;
- XFA_ATTRIBUTE_CALLBACK callback;
- XFA_Attribute attribute;
- XFA_ScriptType eValueType;
-};
-
#endif // XFA_FXFA_FXFA_BASIC_H_