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>
diff --git a/fxjs/xfa/cjx_object.h b/fxjs/xfa/cjx_object.h
index 1c5e405..44df6c4 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 @@
   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 d040bb3..78392d5 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 @@
   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_