diff options
author | Peter Collingbourne <pcc@google.com> | 2018-06-14 18:56:08 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-06-14 18:56:08 +0000 |
commit | bb3d6313f278feee76f5fba17feff3aee65fb928 (patch) | |
tree | 3e7803327967b320fee588e31f51c6983efa6da4 | |
parent | 27cf78d88fdb44bd246cd17bcc712225388e9134 (diff) | |
download | pdfium-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.h | 13 | ||||
-rw-r--r-- | xfa/fxfa/fxfa_basic.h | 13 |
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_ |