diff --git a/fpdfsdk/include/fsdk_baseform.h b/fpdfsdk/include/fsdk_baseform.h
index 07d21bb..14c8fef 100644
--- a/fpdfsdk/include/fsdk_baseform.h
+++ b/fpdfsdk/include/fsdk_baseform.h
@@ -324,7 +324,6 @@
   FX_BOOL FDFToURLEncodedData(uint8_t*& pBuf, FX_STRSIZE& nBufSize);
   int GetPageIndexByAnnotDict(CPDF_Document* pDocument,
                               CPDF_Dictionary* pAnnotDict) const;
-  void DoFDFBuffer(CFX_ByteString sBuffer);
 
   using CPDFSDK_WidgetMap = std::map<CPDF_FormControl*, CPDFSDK_Widget*>;
 
diff --git a/fpdfsdk/src/fsdk_baseform.cpp b/fpdfsdk/src/fsdk_baseform.cpp
index 024287d..2341cfc 100644
--- a/fpdfsdk/src/fsdk_baseform.cpp
+++ b/fpdfsdk/src/fsdk_baseform.cpp
@@ -2705,36 +2705,6 @@
   return TRUE;
 }
 
-void CPDFSDK_InterForm::DoFDFBuffer(CFX_ByteString sBuffer) {
-  ASSERT(m_pDocument != NULL);
-
-  if (CFDF_Document* pFDFDocument = CFDF_Document::ParseMemory(
-          (const unsigned char*)sBuffer.GetBuffer(sBuffer.GetLength()),
-          sBuffer.GetLength())) {
-    CPDF_Dictionary* pRootDic = pFDFDocument->GetRoot();
-    if (pRootDic) {
-      CPDF_Dictionary* pFDFDict = pRootDic->GetDict("FDF");
-      if (pFDFDict) {
-        CPDF_Dictionary* pJSDict = pFDFDict->GetDict("JavaScript");
-        if (pJSDict) {
-          CFX_WideString csJS;
-
-          CPDF_Object* pJS = pJSDict->GetElementValue("Before");
-          if (pJS != NULL) {
-            if (pJS->IsString())
-              csJS = pJSDict->GetUnicodeText("Before");
-            else if (pJS->GetType() == PDFOBJ_STREAM)
-              csJS = pJS->GetUnicodeText();
-          }
-        }
-      }
-    }
-    delete pFDFDocument;
-  }
-
-  sBuffer.ReleaseBuffer();
-}
-
 FX_BOOL CPDFSDK_InterForm::FDFToURLEncodedData(CFX_WideString csFDFFile,
                                                CFX_WideString csTxtFile) {
   return TRUE;
