XFA: add CPDFDocumentToFPDFDocument()
authorTom Sepez <tsepez@chromium.org>
Wed, 21 Oct 2015 21:07:23 +0000 (14:07 -0700)
committerTom Sepez <tsepez@chromium.org>
Wed, 21 Oct 2015 21:07:23 +0000 (14:07 -0700)
Abstracts away that master returns CPDF_Documents directly,
but XFA wraps them with a CPDFXFA_Document.

Tidy dead code along the way.

R=thestig@chromium.org

Review URL: https://codereview.chromium.org/1415803002 .

fpdfsdk/include/fpdfxfa/fpdfxfa_doc.h
fpdfsdk/include/fsdk_baseform.h
fpdfsdk/include/fsdk_define.h
fpdfsdk/include/fsdk_mgr.h
fpdfsdk/src/fpdf_dataavail.cpp
fpdfsdk/src/fpdfeditimg.cpp
fpdfsdk/src/fpdfeditpage.cpp
fpdfsdk/src/fpdfview.cpp
fpdfsdk/src/fpdfxfa/fpdfxfa_doc.cpp
fpdfsdk/src/fsdk_baseform.cpp
fpdfsdk/src/javascript/app.cpp

index 3c33338..0564ed0 100644 (file)
@@ -215,14 +215,14 @@ class CPDFXFA_Document : public IXFA_DocProvider {
     }\r
   }\r
 \r
+  int m_iDocType;\r
   CPDF_Document* m_pPDFDoc;\r
+  CPDFSDK_Document* m_pSDKDoc;\r
   IXFA_Doc* m_pXFADoc;\r
   IXFA_DocView* m_pXFADocView;\r
-  CFX_ArrayTemplate<CPDFXFA_Page*> m_XFAPageList;\r
-  CPDFSDK_Document* m_pSDKDoc;\r
   CPDFXFA_App* m_pApp;\r
   IJS_Context* m_pJSContext;\r
-  int m_iDocType;\r
+  CFX_ArrayTemplate<CPDFXFA_Page*> m_XFAPageList;\r
 };\r
 \r
 #endif  // FPDFXFA_DOC_H_\r
index da57430..07d21bb 100644 (file)
@@ -66,9 +66,9 @@ typedef struct _PDFSDK_FieldAction {
 
 class CPDFSDK_Widget : public CPDFSDK_BAAnnot {
  public:
-  IXFA_Widget* GetMixXFAWidget();
+  IXFA_Widget* GetMixXFAWidget() const;
   IXFA_Widget* GetGroupMixXFAWidget();
-  IXFA_WidgetHandler* GetXFAWidgetHandler();
+  IXFA_WidgetHandler* GetXFAWidgetHandler() const;
 
   FX_BOOL HasXFAAAction(PDFSDK_XFAAActionType eXFAAAT);
   FX_BOOL OnXFAAAction(PDFSDK_XFAAActionType eXFAAAT,
@@ -114,14 +114,14 @@ class CPDFSDK_Widget : public CPDFSDK_BAAnnot {
   FX_BOOL GetTextColor(FX_COLORREF& color) const;
   FX_FLOAT GetFontSize() const;
 
-  int GetSelectedIndex(int nIndex);
-  CFX_WideString GetValue(FX_BOOL bDisplay = TRUE);
+  int GetSelectedIndex(int nIndex) const;
+  CFX_WideString GetValue(FX_BOOL bDisplay = TRUE) const;
   CFX_WideString GetDefaultValue() const;
   CFX_WideString GetOptionLabel(int nIndex) const;
   int CountOptions() const;
-  FX_BOOL IsOptionSelected(int nIndex);
+  FX_BOOL IsOptionSelected(int nIndex) const;
   int GetTopVisibleIndex() const;
-  FX_BOOL IsChecked();
+  FX_BOOL IsChecked() const;
   /*
   BF_ALIGN_LEFT
   BF_ALIGN_MIDDL
@@ -129,7 +129,7 @@ class CPDFSDK_Widget : public CPDFSDK_BAAnnot {
   */
   int GetAlignment() const;
   int GetMaxLen() const;
-  CFX_WideString GetName();
+  CFX_WideString GetName() const;
   CFX_WideString GetAlternateName() const;
 
   // Set Properties.
@@ -198,14 +198,13 @@ class CPDFSDK_Widget : public CPDFSDK_BAAnnot {
  public:
   FX_BOOL HitTest(FX_FLOAT pageX, FX_FLOAT pageY);
 
- private:
   CPDFSDK_InterForm* m_pInterForm;
   FX_BOOL m_bAppModified;
   int32_t m_nAppAge;
   int32_t m_nValueAge;
 
-  IXFA_Widget* m_hMixXFAWidget;
-  IXFA_WidgetHandler* m_pWidgetHandler;
+  mutable IXFA_Widget* m_hMixXFAWidget;
+  mutable IXFA_WidgetHandler* m_pWidgetHandler;
 };
 
 class CPDFSDK_XFAWidget : public CPDFSDK_Annot {
index e001e75..2faaf01 100644 (file)
@@ -87,8 +87,10 @@ class CFPDF_FileStream : public IFX_FileStream {
   FX_FILESIZE m_nCurPos;
 };
 
-// Conversions from FPDF_ types.
+// Conversions to/from FPDF_ types.
 CPDF_Document* CPDFDocumentFromFPDFDocument(FPDF_DOCUMENT doc);
+FPDF_DOCUMENT FPDFDocumentFromCPDFDocument(CPDF_Document* doc);
+
 CPDF_Page* CPDFPageFromFPDFPage(FPDF_PAGE page);
 
 void DropContext(void* data);
index 4c0ce1e..300ca22 100644 (file)
@@ -475,7 +475,10 @@ class CPDFSDK_Document {
   ~CPDFSDK_Document();
 
   CPDFSDK_InterForm* GetInterForm();
-  CPDFXFA_Document* GetDocument() { return m_pDoc; }
+  CPDFXFA_Document* GetDocument() const { return m_pDoc; }
+  CPDF_Document* GetPDFDocument() const {
+    return m_pDoc ? m_pDoc->GetPDFDoc() : nullptr;
+  }
 
   int GetPageViewCount() const { return m_pageMap.size(); }
   CPDFSDK_PageView* GetPageView(CPDFXFA_Page* pPDFXFAPage,
index f09b173..0a90f49 100644 (file)
@@ -113,9 +113,7 @@ FPDFAvail_GetDocument(FPDF_AVAIL avail, FPDF_BYTESTRING password) {
   }
   ((CFPDF_DataAvail*)avail)->m_pDataAvail->SetDocument(pParser->GetDocument());
   CheckUnSupportError(pParser->GetDocument(), FPDF_ERR_SUCCESS);
-  CPDF_Document* pPDFDoc = pParser->GetDocument();
-  CPDFXFA_App* pApp = CPDFXFA_App::GetInstance();
-  return new CPDFXFA_Document(pPDFDoc, pApp);
+  return FPDFDocumentFromCPDFDocument(pParser->GetDocument());
 }
 
 DLLEXPORT int STDCALL FPDFAvail_GetFirstPageNum(FPDF_DOCUMENT doc) {
index cd4618e..73fc251 100644 (file)
@@ -6,8 +6,6 @@
 
 #include "../../public/fpdf_edit.h"
 #include "../include/fsdk_define.h"
-#include "../include/fpdfxfa/fpdfxfa_doc.h"
-#include "../include/fpdfxfa/fpdfxfa_page.h"
 
 DLLEXPORT FPDF_PAGEOBJECT STDCALL
 FPDFPageObj_NewImgeObj(FPDF_DOCUMENT document) {
index 42ab3eb..8b4168f 100644 (file)
@@ -43,8 +43,7 @@ DLLEXPORT FPDF_DOCUMENT STDCALL FPDF_CreateNewDocument() {
     pInfoDict->SetAt("Creator", new CPDF_String(L"PDFium"));
   }
 
-  CPDFXFA_App* pApp = CPDFXFA_App::GetInstance();
-  return new CPDFXFA_Document(pDoc, pApp);
+  return FPDFDocumentFromCPDFDocument(pDoc);
 }
 
 DLLEXPORT void STDCALL FPDFPage_Delete(FPDF_DOCUMENT document, int page_index) {
@@ -177,7 +176,7 @@ DLLEXPORT void STDCALL FPDFPage_InsertObject(FPDF_PAGE page,
 }
 
 DLLEXPORT int STDCALL FPDFPage_CountObject(FPDF_PAGE page) {
-  CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage();
+  CPDF_Page* pPage = CPDFPageFromFPDFPage(page);
   if (!pPage || !pPage->m_pFormDict || !pPage->m_pFormDict->KeyExist("Type") ||
       !pPage->m_pFormDict->GetElement("Type")->GetDirect() ||
       pPage->m_pFormDict->GetElement("Type")->GetDirect()->GetString().Compare(
index e58c536..bd7741d 100644 (file)
@@ -26,6 +26,10 @@ CPDF_Document* CPDFDocumentFromFPDFDocument(FPDF_DOCUMENT doc) {
   return doc ? static_cast<CPDFXFA_Document*>(doc)->GetPDFDoc() : nullptr;
 }
 
+FPDF_DOCUMENT FPDFDocumentFromCPDFDocument(CPDF_Document* doc) {
+  return doc ? new CPDFXFA_Document(doc, CPDFXFA_App::GetInstance()) : nullptr;
+}
+
 CPDF_Page* CPDFPageFromFPDFPage(FPDF_PAGE page) {
   return page ? static_cast<CPDFXFA_Page*>(page)->GetPDFPage() : nullptr;
 }
@@ -351,12 +355,7 @@ DLLEXPORT FPDF_DOCUMENT STDCALL FPDF_LoadMemDocument(const void* data_buf,
   CPDF_Document* pDoc = NULL;
   pDoc = pParser ? pParser->GetDocument() : NULL;
   CheckUnSupportError(pDoc, err_code);
-  CPDF_Document* pPDFDoc = pParser->GetDocument();
-  if (!pPDFDoc)
-    return NULL;
-
-  CPDFXFA_App* pProvider = CPDFXFA_App::GetInstance();
-  return new CPDFXFA_Document(pPDFDoc, pProvider);
+  return FPDFDocumentFromCPDFDocument(pParser->GetDocument());
 }
 
 DLLEXPORT FPDF_DOCUMENT STDCALL
@@ -374,12 +373,7 @@ FPDF_LoadCustomDocument(FPDF_FILEACCESS* pFileAccess,
   CPDF_Document* pDoc = NULL;
   pDoc = pParser ? pParser->GetDocument() : NULL;
   CheckUnSupportError(pDoc, err_code);
-  CPDF_Document* pPDFDoc = pParser->GetDocument();
-  if (!pPDFDoc)
-    return NULL;
-
-  CPDFXFA_App* pProvider = CPDFXFA_App::GetInstance();
-  return new CPDFXFA_Document(pPDFDoc, pProvider);
+  return FPDFDocumentFromCPDFDocument(pParser->GetDocument());
 }
 
 DLLEXPORT FPDF_BOOL STDCALL FPDF_GetFileVersion(FPDF_DOCUMENT doc,
@@ -437,15 +431,13 @@ DLLEXPORT FPDF_PAGE STDCALL FPDF_LoadPage(FPDF_DOCUMENT document,
 }
 
 DLLEXPORT double STDCALL FPDF_GetPageWidth(FPDF_PAGE page) {
-  if (!page)
-    return 0.0;
-  return ((CPDFXFA_Page*)page)->GetPageWidth();
+  CPDFXFA_Page* pPage = static_cast<CPDFXFA_Page*>(page);
+  return pPage ? pPage->GetPageWidth() : 0.0;
 }
 
 DLLEXPORT double STDCALL FPDF_GetPageHeight(FPDF_PAGE page) {
-  if (!page)
-    return 0.0;
-  return ((CPDFXFA_Page*)page)->GetPageHeight();
+  CPDFXFA_Page* pPage = static_cast<CPDFXFA_Page*>(page);
+  return pPage ? pPage->GetPageHeight() : 0.0;
 }
 
 void DropContext(void* data) {
@@ -1018,8 +1010,8 @@ DLLEXPORT FPDF_DEST STDCALL FPDF_GetNamedDest(FPDF_DOCUMENT document,
     *buflen = 0;
   if (!document || index < 0)
     return NULL;
-  CPDF_Document* pDoc = ((CPDFXFA_Document*)document)->GetPDFDoc();
 
+  CPDF_Document* pDoc = CPDFDocumentFromFPDFDocument(document);
   CPDF_Dictionary* pRoot = pDoc->GetRoot();
   if (!pRoot)
     return NULL;
index 365d5d7..3763003 100644 (file)
@@ -35,14 +35,13 @@ extern int GetLastError();
 \r
 CPDFXFA_Document::CPDFXFA_Document(CPDF_Document* pPDFDoc,\r
                                    CPDFXFA_App* pProvider)\r
-    : m_pPDFDoc(pPDFDoc),\r
+    : m_iDocType(DOCTYPE_PDF),\r
+      m_pPDFDoc(pPDFDoc),\r
+      m_pSDKDoc(nullptr),\r
+      m_pXFADoc(nullptr),\r
+      m_pXFADocView(nullptr),\r
       m_pApp(pProvider),\r
-      m_pXFADoc(NULL),\r
-      m_pXFADocView(NULL),\r
-      m_iDocType(DOCTYPE_PDF),\r
-      m_pJSContext(NULL),\r
-      m_pSDKDoc(NULL) {\r
-  m_XFAPageList.RemoveAll();\r
+      m_pJSContext(nullptr) {\r
 }\r
 \r
 CPDFXFA_Document::~CPDFXFA_Document() {\r
@@ -492,24 +491,6 @@ FX_BOOL CPDFXFA_Document::PopupMenu(IXFA_Widget* hWidget,
 \r
 void CPDFXFA_Document::PageViewEvent(IXFA_PageView* pPageView,\r
                                      FX_DWORD dwFlags) {\r
-  if (m_iDocType != DOCTYPE_DYNIMIC_XFA)\r
-    return;\r
-\r
-  CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();\r
-  if (pEnv == NULL)\r
-    return;\r
-\r
-  CPDFXFA_Page* pPage = GetPage(pPageView);\r
-  if (pPage == NULL)\r
-    return;\r
-\r
-  if (dwFlags == FXFA_PAGEVIEWEVENT_POSTADDED) {\r
-    // pEnv->FFI_PageEvent(pPage, FXFA_PAGEVIEWEVENT_POSTADDED);\r
-  } else if (dwFlags == FXFA_PAGEVIEWEVENT_POSTREMOVED) {\r
-    // pEnv->FFI_PageEvent(pPage, FXFA_PAGEVIEWEVENT_POSTREMOVED);\r
-    // RemovePage(pPage);\r
-    // delete pPage;\r
-  }\r
 }\r
 \r
 void CPDFXFA_Document::WidgetEvent(IXFA_Widget* hWidget,\r
@@ -517,60 +498,30 @@ void CPDFXFA_Document::WidgetEvent(IXFA_Widget* hWidget,
                                    FX_DWORD dwEvent,\r
                                    void* pParam,\r
                                    void* pAdditional) {\r
-  if (m_iDocType != DOCTYPE_DYNIMIC_XFA || NULL == hWidget)\r
+  if (m_iDocType != DOCTYPE_DYNIMIC_XFA || !hWidget)\r
     return;\r
 \r
   CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv();\r
-  if (pEnv == NULL)\r
-    return;\r
-\r
-  if (NULL == hWidget)\r
+  if (!pEnv)\r
     return;\r
 \r
   IXFA_PageView* pPageView =\r
       m_pXFADocView->GetWidgetHandler()->GetPageView(hWidget);\r
-\r
   if (pPageView == NULL)\r
     return;\r
+\r
   CPDFXFA_Page* pXFAPage = GetPage(pPageView);\r
   if (pXFAPage == NULL)\r
     return;\r
 \r
   CPDFSDK_PageView* pSdkPageView = m_pSDKDoc->GetPageView(pXFAPage);\r
-\r
-  CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr();\r
-\r
   if (dwEvent == XFA_WIDGETEVENT_PostAdded) {\r
-    //                         CPDFSDK_Annot* pAnnot =\r
-    // pAnnotHandlerMgr->NewAnnot(hWidget,\r
-    // pSdkPageView);\r
-    //                         pAnnotHandlerMgr->Annot_OnLoad(pAnnot);\r
-\r
-    // pEnv->FFI_WidgetEvent(hWidget, XFA_WIDGETEVENT_PostAdded);\r
-    //                 IXFA_PageView* pOldPageView = (IXFA_PageView*)pAdditional;\r
-    //                 if (pOldPageView)\r
-    //                 {\r
-    //                         CPDFXFA_Page* pDestPage =\r
-    // m_pSDKDoc->GetPageView((IXFA_PageView*)pOldPageView);\r
-    //                         ASSERT(pDestPage);\r
-    //                         CPDFSDK_Annot* pAnnot =\r
-    // pDestPage->GetAnnotByXFAWidget(hWidget);\r
-    //                         if (pAnnot)\r
-    //                         {\r
-    //                                 if (m_pSDKDoc->GetFocusAnnot() == pAnnot)\r
-    //                                 {\r
-    //                                         m_pSDKDoc->SetFocusAnnot(NULL);\r
-    //                                 }\r
-    //                                 pDestPage->DeleteAnnot(pAnnot);\r
-    //                         }\r
-    //                 }\r
     pSdkPageView->AddAnnot(hWidget);\r
 \r
   } else if (dwEvent == XFA_WIDGETEVENT_PreRemoved) {\r
     CPDFSDK_Annot* pAnnot = pSdkPageView->GetAnnotByXFAWidget(hWidget);\r
     if (pAnnot) {\r
       pSdkPageView->DeleteAnnot(pAnnot);\r
-      // pEnv->FFI_WidgetEvent(hWidget, XFA_WIDGETEVENT_PreRemoved);\r
     }\r
   }\r
 }\r
@@ -686,32 +637,9 @@ void CPDFXFA_Document::ExportData(IXFA_Doc* hDoc,
                          content.GetLength());\r
     CFX_WideStringC data(L"data");\r
     if (pXFADocHander->SavePackage(m_pXFADocView->GetDoc(), data, &fileWrite)) {\r
-      NULL;\r
+      // TODO: Maybe report error.\r
     }\r
-  }\r
-  /*else if (fileType == FXFA_FILE_STATIC_XDP)\r
-  {\r
-          content = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n";\r
-          fileWrite.WriteBlock((const FX_CHAR*)content, fileWrite.GetSize(),\r
-content.GetLength());\r
-          CFX_WideStringC data(L"data");\r
-          if( pXFADocHander->SavePackage(m_pXFADocView->GetDoc(), data,\r
-&fileWrite))\r
-          {\r
-                  NULL;\r
-          }\r
-          CFX_WideString wPath = pEnv->FFI_GetFilePath(pFileHandler);\r
-//             CFX_WideString wPath;\r
-//             wPath.FromUTF16LE(filePath);\r
-          CFX_ByteString bPath = wPath.UTF8Encode();\r
-          CFX_ByteString szFormat = "\n<pdf href=\"%s\"\r
-xmlns=\"http://ns.adobe.com/xdp/pdf/\"/>";\r
-          content.Format(szFormat,(char*)(const FX_CHAR*)bPath);\r
-          fileWrite.WriteBlock((const FX_CHAR*)content,fileWrite.GetSize(),\r
-content.GetLength());\r
-  }\r
-  */\r
-  else if (fileType == FXFA_SAVEAS_XDP) {\r
+  } else if (fileType == FXFA_SAVEAS_XDP) {\r
     if (m_pPDFDoc == NULL)\r
       return;\r
     CPDF_Dictionary* pRoot = m_pPDFDoc->GetRoot();\r
@@ -729,8 +657,6 @@ content.GetLength());
     if (NULL == pArray)\r
       return;\r
     int size = pArray->GetCount();\r
-    int iFormIndex = -1;\r
-    int iDataSetsIndex = -1;\r
     for (int i = 1; i < size; i += 2) {\r
       CPDF_Object* pPDFObj = pArray->GetElement(i);\r
       CPDF_Object* pPrePDFObj = pArray->GetElement(i - 1);\r
@@ -750,7 +676,6 @@ content.GetLength());
                                    &fileWrite);\r
       } else {\r
         if (i == size - 1) {\r
-          // CFX_WideString wPath = pEnv->FFI_GetFilePath(pFileHandler);\r
           CFX_WideString wPath = CFX_WideString::FromUTF16LE(\r
               (unsigned short*)(const FX_CHAR*)bs,\r
               bs.GetLength() / sizeof(unsigned short));\r
@@ -771,7 +696,9 @@ content.GetLength());
       }\r
     }\r
   }\r
-  FX_BOOL bError = fileWrite.Flush();\r
+  if (!fileWrite.Flush()) {\r
+    // TODO: Report error.\r
+  }\r
 }\r
 void CPDFXFA_Document::ImportData(IXFA_Doc* hDoc,\r
                                   const CFX_WideStringC& wsFilePath) {\r
@@ -1051,8 +978,6 @@ FX_BOOL CPDFXFA_Document::_ExportSubmitFile(FPDF_FILEHANDLER* pFileHandler,
       return FALSE;\r
     }\r
     int size = pArray->GetCount();\r
-    int iFormIndex = -1;\r
-    int iDataSetsIndex = -1;\r
     for (int i = 1; i < size; i += 2) {\r
       CPDF_Object* pPDFObj = pArray->GetElement(i);\r
       CPDF_Object* pPrePDFObj = pArray->GetElement(i - 1);\r
index 68c320b..024287d 100644 (file)
@@ -39,15 +39,9 @@ CPDFSDK_Widget::CPDFSDK_Widget(CPDF_Annot* pAnnot,
 
 CPDFSDK_Widget::~CPDFSDK_Widget() {}
 
-IXFA_Widget* CPDFSDK_Widget::GetMixXFAWidget() {
-  ASSERT(m_pPageView != NULL);
-
+IXFA_Widget* CPDFSDK_Widget::GetMixXFAWidget() const {
   CPDFSDK_Document* pSDKDoc = m_pPageView->GetSDKDocument();
-  ASSERT(pSDKDoc != NULL);
-
   CPDFXFA_Document* pDoc = pSDKDoc->GetDocument();
-  ASSERT(pDoc != NULL);
-
   if (pDoc->GetDocType() == DOCTYPE_STATIC_XFA) {
     if (!m_hMixXFAWidget) {
       if (IXFA_DocView* pDocView = pDoc->GetXFADocView()) {
@@ -90,15 +84,9 @@ IXFA_Widget* CPDFSDK_Widget::GetGroupMixXFAWidget() {
   return NULL;
 }
 
-IXFA_WidgetHandler* CPDFSDK_Widget::GetXFAWidgetHandler() {
-  ASSERT(m_pPageView != NULL);
-
+IXFA_WidgetHandler* CPDFSDK_Widget::GetXFAWidgetHandler() const {
   CPDFSDK_Document* pSDKDoc = m_pPageView->GetSDKDocument();
-  ASSERT(pSDKDoc != NULL);
-
   CPDFXFA_Document* pDoc = pSDKDoc->GetDocument();
-  ASSERT(pDoc != NULL);
-
   if (pDoc->GetDocType() == DOCTYPE_STATIC_XFA) {
     if (!m_pWidgetHandler) {
       if (IXFA_DocView* pDocView = pDoc->GetXFADocView()) {
@@ -343,16 +331,10 @@ void CPDFSDK_Widget::SynchronizeXFAValue() {
   if (!pXFADocView)
     return;
 
-  if (IXFA_Widget* hWidget = this->GetMixXFAWidget()) {
-    if (IXFA_WidgetHandler* pXFAWidgetHandler = this->GetXFAWidgetHandler()) {
-      CPDF_FormField* pFormField = GetFormField();
-      ASSERT(pFormField != NULL);
-
-      CPDF_FormControl* pFormCtrl = GetFormControl();
-      ASSERT(pFormCtrl != NULL);
-
-      CPDFSDK_Widget::SynchronizeXFAValue(pXFADocView, hWidget, pFormField,
-                                          pFormCtrl);
+  if (IXFA_Widget* hWidget = GetMixXFAWidget()) {
+    if (GetXFAWidgetHandler()) {
+      CPDFSDK_Widget::SynchronizeXFAValue(pXFADocView, hWidget, GetFormField(),
+                                          GetFormControl());
     }
   }
 #endif  // PDF_ENABLE_XFA
@@ -372,13 +354,9 @@ void CPDFSDK_Widget::SynchronizeXFAItems() {
   if (!pXFADocView)
     return;
 
-  if (IXFA_Widget* hWidget = this->GetMixXFAWidget()) {
-    if (IXFA_WidgetHandler* pXFAWidgetHandler = this->GetXFAWidgetHandler()) {
-      CPDF_FormField* pFormField = GetFormField();
-      ASSERT(pFormField != NULL);
-
-      SynchronizeXFAItems(pXFADocView, hWidget, pFormField, NULL);
-    }
+  if (IXFA_Widget* hWidget = GetMixXFAWidget()) {
+    if (GetXFAWidgetHandler())
+      SynchronizeXFAItems(pXFADocView, hWidget, GetFormField(), nullptr);
   }
 #endif  // PDF_ENABLE_XFA
 }
@@ -622,12 +600,8 @@ int CPDFSDK_Widget::GetRotate() const {
   return pCtrl->GetRotation() % 360;
 }
 
-CFX_WideString CPDFSDK_Widget::GetName() {
-  ASSERT(m_pInterForm != NULL);
-
+CFX_WideString CPDFSDK_Widget::GetName() const {
   CPDF_FormField* pFormField = GetFormField();
-  ASSERT(pFormField != NULL);
-
   return pFormField->GetFullName();
 }
 
@@ -680,7 +654,7 @@ FX_FLOAT CPDFSDK_Widget::GetFontSize() const {
   return fFontSize;
 }
 
-int CPDFSDK_Widget::GetSelectedIndex(int nIndex) {
+int CPDFSDK_Widget::GetSelectedIndex(int nIndex) const {
 #ifdef PDF_ENABLE_XFA
   if (IXFA_Widget* hWidget = this->GetMixXFAWidget()) {
     if (IXFA_WidgetHandler* pXFAWidgetHandler = this->GetXFAWidgetHandler()) {
@@ -696,7 +670,7 @@ int CPDFSDK_Widget::GetSelectedIndex(int nIndex) {
   return pFormField->GetSelectedIndex(nIndex);
 }
 
-CFX_WideString CPDFSDK_Widget::GetValue(FX_BOOL bDisplay) {
+CFX_WideString CPDFSDK_Widget::GetValue(FX_BOOL bDisplay) const {
 #ifdef PDF_ENABLE_XFA
   if (IXFA_Widget* hWidget = this->GetMixXFAWidget()) {
     if (IXFA_WidgetHandler* pXFAWidgetHandler = this->GetXFAWidgetHandler()) {
@@ -735,7 +709,7 @@ int CPDFSDK_Widget::CountOptions() const {
   return pFormField->CountOptions();
 }
 
-FX_BOOL CPDFSDK_Widget::IsOptionSelected(int nIndex) {
+FX_BOOL CPDFSDK_Widget::IsOptionSelected(int nIndex) const {
 #ifdef PDF_ENABLE_XFA
   if (IXFA_Widget* hWidget = this->GetMixXFAWidget()) {
     if (IXFA_WidgetHandler* pXFAWidgetHandler = this->GetXFAWidgetHandler()) {
@@ -758,7 +732,7 @@ int CPDFSDK_Widget::GetTopVisibleIndex() const {
   return pFormField->GetTopVisibleIndex();
 }
 
-FX_BOOL CPDFSDK_Widget::IsChecked() {
+FX_BOOL CPDFSDK_Widget::IsChecked() const {
 #ifdef PDF_ENABLE_XFA
   if (IXFA_WidgetHandler* pXFAWidgetHandler = this->GetXFAWidgetHandler()) {
     if (IXFA_Widget* hWidget = this->GetMixXFAWidget()) {
index 80a9b17..379170f 100644 (file)
@@ -201,11 +201,12 @@ FX_BOOL app::viewerVersion(IJS_Context* cc,
   CJS_Context* pContext = (CJS_Context*)cc;
   CPDFSDK_Document* pCurDoc = pContext->GetReaderDocument();
   CPDFXFA_Document* pDoc = pCurDoc->GetDocument();
-  if (pDoc->GetDocType() == 1 || pDoc->GetDocType() == 2)
+  if (pDoc->GetDocType() == 1 || pDoc->GetDocType() == 2) {
     vp << JS_NUM_VIEWERVERSION_XFA;
-  else
-    vp << JS_NUM_VIEWERVERSION;
+    return TRUE;
+  }
 
+  vp << JS_NUM_VIEWERVERSION;
   return TRUE;
 }