Convert loose FX_Create* functions into static methods

Also remove a bool that is always false.

Review-Url: https://codereview.chromium.org/2539203002
diff --git a/core/fpdfapi/parser/cfdf_document.cpp b/core/fpdfapi/parser/cfdf_document.cpp
index 41e2852..a6045e7 100644
--- a/core/fpdfapi/parser/cfdf_document.cpp
+++ b/core/fpdfapi/parser/cfdf_document.cpp
@@ -45,8 +45,8 @@
 
 std::unique_ptr<CFDF_Document> CFDF_Document::ParseMemory(const uint8_t* pData,
                                                           uint32_t size) {
-  return CFDF_Document::ParseFile(FX_CreateMemoryStream((uint8_t*)pData, size),
-                                  true);
+  return CFDF_Document::ParseFile(
+      IFX_MemoryStream::Create((uint8_t*)pData, size), true);
 }
 
 void CFDF_Document::ParseStream(IFX_SeekableReadStream* pFile, bool bOwnFile) {
diff --git a/core/fpdfapi/parser/cpdf_data_avail.cpp b/core/fpdfapi/parser/cpdf_data_avail.cpp
index 1ac6e06..2487484 100644
--- a/core/fpdfapi/parser/cpdf_data_avail.cpp
+++ b/core/fpdfapi/parser/cpdf_data_avail.cpp
@@ -718,7 +718,7 @@
   if (m_pLinearized)
     return true;
 
-  ScopedFileStream file(FX_CreateMemoryStream(pData, (size_t)dwLen, false));
+  ScopedFileStream file(IFX_MemoryStream::Create(pData, (size_t)dwLen, false));
   int32_t offset = GetHeaderOffset(file.get());
   if (offset == -1) {
     m_docStatus = PDF_DATAAVAIL_ERROR;
@@ -753,7 +753,8 @@
     uint8_t buffer[1024];
     m_pFileRead->ReadBlock(buffer, req_pos, dwSize);
 
-    ScopedFileStream file(FX_CreateMemoryStream(buffer, (size_t)dwSize, false));
+    ScopedFileStream file(
+        IFX_MemoryStream::Create(buffer, (size_t)dwSize, false));
     m_syntaxParser.InitParser(file.get(), 0);
     m_syntaxParser.RestorePos(dwSize - 1);
 
@@ -800,7 +801,7 @@
 
     m_pFileRead->ReadBlock(pBuf, m_dwCurrentXRefSteam, iSize);
 
-    ScopedFileStream file(FX_CreateMemoryStream(pBuf, (size_t)iSize, false));
+    ScopedFileStream file(IFX_MemoryStream::Create(pBuf, (size_t)iSize, false));
     m_parser.m_pSyntax->InitParser(file.get(), 0);
 
     bool bNumber;
@@ -1046,7 +1047,7 @@
     if (!m_pFileRead->ReadBlock(pBuf, m_dwTrailerOffset, iSize))
       return false;
 
-    ScopedFileStream file(FX_CreateMemoryStream(pBuf, (size_t)iSize, false));
+    ScopedFileStream file(IFX_MemoryStream::Create(pBuf, (size_t)iSize, false));
     m_syntaxParser.InitParser(file.get(), 0);
 
     std::unique_ptr<CPDF_Object> pTrailer(
diff --git a/core/fpdfapi/parser/cpdf_parser.cpp b/core/fpdfapi/parser/cpdf_parser.cpp
index 2f432ed..1fae0d6 100644
--- a/core/fpdfapi/parser/cpdf_parser.cpp
+++ b/core/fpdfapi/parser/cpdf_parser.cpp
@@ -1124,7 +1124,7 @@
   if (!pObjStream)
     return nullptr;
 
-  ScopedFileStream file(FX_CreateMemoryStream(
+  ScopedFileStream file(IFX_MemoryStream::Create(
       (uint8_t*)pObjStream->GetData(), (size_t)pObjStream->GetSize(), false));
   CPDF_SyntaxParser syntax;
   syntax.InitParser(file.get(), 0);
@@ -1204,7 +1204,7 @@
     const uint8_t* pData = pObjStream->GetData();
     uint32_t totalsize = pObjStream->GetSize();
     ScopedFileStream file(
-        FX_CreateMemoryStream((uint8_t*)pData, (size_t)totalsize, false));
+        IFX_MemoryStream::Create((uint8_t*)pData, (size_t)totalsize, false));
 
     CPDF_SyntaxParser syntax;
     syntax.InitParser(file.get(), 0);
diff --git a/core/fpdfapi/parser/cpdf_parser_unittest.cpp b/core/fpdfapi/parser/cpdf_parser_unittest.cpp
index 7148c54..0a70103 100644
--- a/core/fpdfapi/parser/cpdf_parser_unittest.cpp
+++ b/core/fpdfapi/parser/cpdf_parser_unittest.cpp
@@ -45,7 +45,8 @@
 
   // Setup reading from a file and initial states.
   bool InitTestFromFile(const FX_CHAR* path) {
-    IFX_SeekableReadStream* pFileAccess = FX_CreateFileRead(path);
+    IFX_SeekableReadStream* pFileAccess =
+        IFX_SeekableReadStream::CreateFromFilename(path);
     if (!pFileAccess)
       return false;
 
diff --git a/core/fpdfapi/parser/cpdf_syntax_parser_unittest.cpp b/core/fpdfapi/parser/cpdf_syntax_parser_unittest.cpp
index a23c0ed..f94b431 100644
--- a/core/fpdfapi/parser/cpdf_syntax_parser_unittest.cpp
+++ b/core/fpdfapi/parser/cpdf_syntax_parser_unittest.cpp
@@ -16,7 +16,7 @@
   {
     // Empty string.
     uint8_t data[] = "";
-    ScopedFileStream stream(FX_CreateMemoryStream(data, 0, false));
+    ScopedFileStream stream(IFX_MemoryStream::Create(data, 0, false));
 
     CPDF_SyntaxParser parser;
     parser.InitParser(stream.get(), 0);
@@ -27,7 +27,7 @@
   {
     // Blank string.
     uint8_t data[] = "  ";
-    ScopedFileStream stream(FX_CreateMemoryStream(data, 2, false));
+    ScopedFileStream stream(IFX_MemoryStream::Create(data, 2, false));
 
     CPDF_SyntaxParser parser;
     parser.InitParser(stream.get(), 0);
@@ -38,7 +38,7 @@
   {
     // Skips unknown characters.
     uint8_t data[] = "z12b";
-    ScopedFileStream stream(FX_CreateMemoryStream(data, 4, false));
+    ScopedFileStream stream(IFX_MemoryStream::Create(data, 4, false));
 
     CPDF_SyntaxParser parser;
     parser.InitParser(stream.get(), 0);
@@ -49,7 +49,7 @@
   {
     // Skips unknown characters.
     uint8_t data[] = "*<&*#$^&@1";
-    ScopedFileStream stream(FX_CreateMemoryStream(data, 10, false));
+    ScopedFileStream stream(IFX_MemoryStream::Create(data, 10, false));
 
     CPDF_SyntaxParser parser;
     parser.InitParser(stream.get(), 0);
@@ -60,7 +60,7 @@
   {
     // Skips unknown characters.
     uint8_t data[] = "\x80zab";
-    ScopedFileStream stream(FX_CreateMemoryStream(data, 4, false));
+    ScopedFileStream stream(IFX_MemoryStream::Create(data, 4, false));
 
     CPDF_SyntaxParser parser;
     parser.InitParser(stream.get(), 0);
@@ -71,7 +71,7 @@
   {
     // Skips unknown characters.
     uint8_t data[] = "\xffzab";
-    ScopedFileStream stream(FX_CreateMemoryStream(data, 4, false));
+    ScopedFileStream stream(IFX_MemoryStream::Create(data, 4, false));
 
     CPDF_SyntaxParser parser;
     parser.InitParser(stream.get(), 0);
@@ -82,7 +82,7 @@
   {
     // Regular conversion.
     uint8_t data[] = "1A2b>abcd";
-    ScopedFileStream stream(FX_CreateMemoryStream(data, 9, false));
+    ScopedFileStream stream(IFX_MemoryStream::Create(data, 9, false));
 
     CPDF_SyntaxParser parser;
     parser.InitParser(stream.get(), 0);
@@ -93,7 +93,7 @@
   {
     // Position out of bounds.
     uint8_t data[] = "12ab>";
-    ScopedFileStream stream(FX_CreateMemoryStream(data, 5, false));
+    ScopedFileStream stream(IFX_MemoryStream::Create(data, 5, false));
 
     CPDF_SyntaxParser parser;
     parser.InitParser(stream.get(), 0);
@@ -117,7 +117,7 @@
   {
     // Missing ending >.
     uint8_t data[] = "1A2b";
-    ScopedFileStream stream(FX_CreateMemoryStream(data, 4, false));
+    ScopedFileStream stream(IFX_MemoryStream::Create(data, 4, false));
 
     CPDF_SyntaxParser parser;
     parser.InitParser(stream.get(), 0);
@@ -128,7 +128,7 @@
   {
     // Missing ending >.
     uint8_t data[] = "12abz";
-    ScopedFileStream stream(FX_CreateMemoryStream(data, 5, false));
+    ScopedFileStream stream(IFX_MemoryStream::Create(data, 5, false));
 
     CPDF_SyntaxParser parser;
     parser.InitParser(stream.get(), 0);
@@ -139,7 +139,7 @@
   {
     // Uneven number of bytes.
     uint8_t data[] = "1A2>asdf";
-    ScopedFileStream stream(FX_CreateMemoryStream(data, 8, false));
+    ScopedFileStream stream(IFX_MemoryStream::Create(data, 8, false));
 
     CPDF_SyntaxParser parser;
     parser.InitParser(stream.get(), 0);
@@ -150,7 +150,7 @@
   {
     // Uneven number of bytes.
     uint8_t data[] = "1A2zasdf";
-    ScopedFileStream stream(FX_CreateMemoryStream(data, 8, false));
+    ScopedFileStream stream(IFX_MemoryStream::Create(data, 8, false));
 
     CPDF_SyntaxParser parser;
     parser.InitParser(stream.get(), 0);
@@ -161,7 +161,7 @@
   {
     // Just ending character.
     uint8_t data[] = ">";
-    ScopedFileStream stream(FX_CreateMemoryStream(data, 1, false));
+    ScopedFileStream stream(IFX_MemoryStream::Create(data, 1, false));
 
     CPDF_SyntaxParser parser;
     parser.InitParser(stream.get(), 0);
diff --git a/core/fxcrt/fx_extension.cpp b/core/fxcrt/fx_extension.cpp
index 39bf028..6bf61f1 100644
--- a/core/fxcrt/fx_extension.cpp
+++ b/core/fxcrt/fx_extension.cpp
@@ -40,7 +40,7 @@
 }
 
 IFX_SeekableStream* CFX_CRTFileAccess::CreateFileStream(uint32_t dwModes) {
-  return FX_CreateFileStream(m_path.c_str(), dwModes);
+  return IFX_SeekableStream::CreateFromFilename(m_path.c_str(), dwModes);
 }
 
 bool CFX_CRTFileAccess::Init(const CFX_WideStringC& wsPath) {
@@ -338,33 +338,41 @@
 }
 #endif  // PDF_ENABLE_XFA
 
-IFX_SeekableStream* FX_CreateFileStream(const FX_CHAR* filename,
-                                        uint32_t dwModes) {
+// static
+IFX_SeekableStream* IFX_SeekableStream::CreateFromFilename(
+    const FX_CHAR* filename,
+    uint32_t dwModes) {
   std::unique_ptr<IFXCRT_FileAccess> pFA(IFXCRT_FileAccess::Create());
   if (!pFA->Open(filename, dwModes))
     return nullptr;
   return new CFX_CRTFileStream(std::move(pFA));
 }
 
-IFX_SeekableStream* FX_CreateFileStream(const FX_WCHAR* filename,
-                                        uint32_t dwModes) {
+// static
+IFX_SeekableStream* IFX_SeekableStream::CreateFromFilename(
+    const FX_WCHAR* filename,
+    uint32_t dwModes) {
   std::unique_ptr<IFXCRT_FileAccess> pFA(IFXCRT_FileAccess::Create());
   if (!pFA->Open(filename, dwModes))
     return nullptr;
   return new CFX_CRTFileStream(std::move(pFA));
 }
-IFX_SeekableReadStream* FX_CreateFileRead(const FX_CHAR* filename) {
-  return FX_CreateFileStream(filename, FX_FILEMODE_ReadOnly);
+
+// static
+IFX_SeekableReadStream* IFX_SeekableReadStream::CreateFromFilename(
+    const FX_CHAR* filename) {
+  return IFX_SeekableStream::CreateFromFilename(filename, FX_FILEMODE_ReadOnly);
 }
-IFX_SeekableReadStream* FX_CreateFileRead(const FX_WCHAR* filename) {
-  return FX_CreateFileStream(filename, FX_FILEMODE_ReadOnly);
-}
-IFX_MemoryStream* FX_CreateMemoryStream(uint8_t* pBuffer,
-                                        size_t dwSize,
-                                        bool bTakeOver) {
+
+// static
+IFX_MemoryStream* IFX_MemoryStream::Create(uint8_t* pBuffer,
+                                           size_t dwSize,
+                                           bool bTakeOver) {
   return new CFX_MemoryStream(pBuffer, dwSize, bTakeOver);
 }
-IFX_MemoryStream* FX_CreateMemoryStream(bool bConsecutive) {
+
+// static
+IFX_MemoryStream* IFX_MemoryStream::Create(bool bConsecutive) {
   return new CFX_MemoryStream(bConsecutive);
 }
 
diff --git a/core/fxcrt/fx_stream.h b/core/fxcrt/fx_stream.h
index dc687cf..fe92c93 100644
--- a/core/fxcrt/fx_stream.h
+++ b/core/fxcrt/fx_stream.h
@@ -85,6 +85,8 @@
 
 class IFX_SeekableReadStream : public IFX_ReadStream {
  public:
+  static IFX_SeekableReadStream* CreateFromFilename(const FX_CHAR* filename);
+
   // IFX_ReadStream:
   void Release() override = 0;
   bool IsEOF() override;
@@ -95,12 +97,14 @@
   virtual FX_FILESIZE GetSize() = 0;
 };
 
-IFX_SeekableReadStream* FX_CreateFileRead(const FX_CHAR* filename);
-IFX_SeekableReadStream* FX_CreateFileRead(const FX_WCHAR* filename);
-
 class IFX_SeekableStream : public IFX_SeekableReadStream,
                            public IFX_SeekableWriteStream {
  public:
+  static IFX_SeekableStream* CreateFromFilename(const FX_CHAR* filename,
+                                                uint32_t dwModes);
+  static IFX_SeekableStream* CreateFromFilename(const FX_WCHAR* filename,
+                                                uint32_t dwModes);
+
   virtual IFX_SeekableStream* Retain() = 0;
 
   // IFX_SeekableReadStream:
@@ -119,11 +123,6 @@
   bool Flush() override = 0;
 };
 
-IFX_SeekableStream* FX_CreateFileStream(const FX_CHAR* filename,
-                                        uint32_t dwModes);
-IFX_SeekableStream* FX_CreateFileStream(const FX_WCHAR* filename,
-                                        uint32_t dwModes);
-
 #ifdef PDF_ENABLE_XFA
 class IFX_FileAccess {
  public:
@@ -138,6 +137,11 @@
 
 class IFX_MemoryStream : public IFX_SeekableStream {
  public:
+  static IFX_MemoryStream* Create(uint8_t* pBuffer,
+                                  size_t nSize,
+                                  bool bTakeOver = false);
+  static IFX_MemoryStream* Create(bool bConsecutive = false);
+
   virtual bool IsConsecutive() const = 0;
   virtual void EstimateSize(size_t nInitSize, size_t nGrowSize) = 0;
   virtual uint8_t* GetBuffer() const = 0;
@@ -147,11 +151,6 @@
   virtual void DetachBuffer() = 0;
 };
 
-IFX_MemoryStream* FX_CreateMemoryStream(uint8_t* pBuffer,
-                                        size_t nSize,
-                                        bool bTakeOver = false);
-IFX_MemoryStream* FX_CreateMemoryStream(bool bConsecutive = false);
-
 class IFX_BufferRead : public IFX_ReadStream {
  public:
   // IFX_ReadStream:
diff --git a/fpdfsdk/fpdfsave.cpp b/fpdfsdk/fpdfsave.cpp
index cb01ab6..c65ff88 100644
--- a/fpdfsdk/fpdfsave.cpp
+++ b/fpdfsdk/fpdfsave.cpp
@@ -136,7 +136,7 @@
     streamAcc.LoadAllData(pTemplateStream);
     uint8_t* pData = (uint8_t*)streamAcc.GetData();
     uint32_t dwSize2 = streamAcc.GetSize();
-    ScopedFileStream pTemplate(FX_CreateMemoryStream(pData, dwSize2));
+    ScopedFileStream pTemplate(IFX_MemoryStream::Create(pData, dwSize2));
     pChecksum->UpdateChecksum(pTemplate.get());
   }
   CPDF_Stream* pFormStream = nullptr;
@@ -169,7 +169,7 @@
   }
   // L"datasets"
   {
-    ScopedFileStream pDsfileWrite(FX_CreateMemoryStream());
+    ScopedFileStream pDsfileWrite(IFX_MemoryStream::Create());
     if (pXFADocView->GetDoc()->SavePackage(XFA_HASHCODE_Datasets,
                                            pDsfileWrite.get(), nullptr) &&
         pDsfileWrite->GetSize() > 0) {
@@ -196,7 +196,7 @@
   }
   // L"form"
   {
-    ScopedFileStream pfileWrite(FX_CreateMemoryStream());
+    ScopedFileStream pfileWrite(IFX_MemoryStream::Create());
     if (pXFADocView->GetDoc()->SavePackage(XFA_HASHCODE_Form, pfileWrite.get(),
                                            pChecksum.get()) &&
         pfileWrite->GetSize() > 0) {
diff --git a/fpdfsdk/fpdfview.cpp b/fpdfsdk/fpdfview.cpp
index c7cc124..1c27b6c 100644
--- a/fpdfsdk/fpdfview.cpp
+++ b/fpdfsdk/fpdfview.cpp
@@ -393,16 +393,14 @@
   // NOTE: the creation of the file needs to be by the embedder on the
   // other side of this API.
   IFX_SeekableReadStream* pFileAccess =
-      FX_CreateFileRead((const FX_CHAR*)file_path);
-  if (!pFileAccess) {
+      IFX_SeekableReadStream::CreateFromFilename((const FX_CHAR*)file_path);
+  if (!pFileAccess)
     return nullptr;
-  }
 
-  std::unique_ptr<CPDF_Parser> pParser(new CPDF_Parser);
+  auto pParser = pdfium::MakeUnique<CPDF_Parser>();
   pParser->SetPassword(password);
 
-  std::unique_ptr<CPDF_Document> pDocument(
-      new CPDF_Document(std::move(pParser)));
+  auto pDocument = pdfium::MakeUnique<CPDF_Document>(std::move(pParser));
   CPDF_Parser::Error error =
       pDocument->GetParser()->StartParse(pFileAccess, pDocument.get());
   if (error != CPDF_Parser::SUCCESS) {
diff --git a/testing/libfuzzer/pdf_cfx_saxreader_fuzzer.cc b/testing/libfuzzer/pdf_cfx_saxreader_fuzzer.cc
index b32a182..923a732 100644
--- a/testing/libfuzzer/pdf_cfx_saxreader_fuzzer.cc
+++ b/testing/libfuzzer/pdf_cfx_saxreader_fuzzer.cc
@@ -18,7 +18,7 @@
 
   std::unique_ptr<IFX_SeekableReadStream,
                   ReleaseDeleter<IFX_SeekableReadStream>>
-      fileRead(FX_CreateFileRead(stream.get(), false));
+      fileRead(stream->MakeSeekableReadStream());
   if (!fileRead)
     return 0;
 
diff --git a/xfa/fgas/crt/fgas_stream.cpp b/xfa/fgas/crt/fgas_stream.cpp
index c3850c0..73d3d0b 100644
--- a/xfa/fgas/crt/fgas_stream.cpp
+++ b/xfa/fgas/crt/fgas_stream.cpp
@@ -1452,10 +1452,8 @@
   return pShared;
 }
 
-IFX_SeekableReadStream* FX_CreateFileRead(IFX_Stream* pBaseStream,
-                                          bool bReleaseStream) {
-  ASSERT(pBaseStream);
-  return new CFGAS_FileRead(pBaseStream, bReleaseStream);
+IFX_SeekableReadStream* IFX_Stream::MakeSeekableReadStream() {
+  return new CFGAS_FileRead(this, false);
 }
 
 CFGAS_FileRead::CFGAS_FileRead(IFX_Stream* pStream, bool bReleaseStream)
diff --git a/xfa/fgas/crt/fgas_stream.h b/xfa/fgas/crt/fgas_stream.h
index 674007e..413927d 100644
--- a/xfa/fgas/crt/fgas_stream.h
+++ b/xfa/fgas/crt/fgas_stream.h
@@ -37,6 +37,7 @@
                                   uint32_t dwAccess);
   static IFX_Stream* CreateTextStream(IFX_Stream* pBaseStream,
                                       bool bDeleteOnRelease);
+
   virtual ~IFX_Stream() {}
   virtual void Release() = 0;
   virtual IFX_Stream* Retain() = 0;
@@ -61,9 +62,9 @@
   virtual int32_t GetBOM(uint8_t bom[4]) const = 0;
   virtual uint16_t GetCodePage() const = 0;
   virtual uint16_t SetCodePage(uint16_t wCodePage) = 0;
+
+  IFX_SeekableReadStream* MakeSeekableReadStream();
 };
 
-IFX_SeekableReadStream* FX_CreateFileRead(IFX_Stream* pBaseStream,
-                                          bool bReleaseStream);
 
 #endif  // XFA_FGAS_CRT_FGAS_STREAM_H_
diff --git a/xfa/fgas/font/cfgas_fontmgr.cpp b/xfa/fgas/font/cfgas_fontmgr.cpp
index 9b95318..219e67d 100644
--- a/xfa/fgas/font/cfgas_fontmgr.cpp
+++ b/xfa/fgas/font/cfgas_fontmgr.cpp
@@ -909,7 +909,7 @@
   uint8_t* pBuffer = FX_Alloc(uint8_t, dwFileSize + 1);
   dwFileSize = pSystemFontInfo->GetFontData(hFont, 0, pBuffer, dwFileSize);
 
-  return FX_CreateMemoryStream(pBuffer, dwFileSize, true);
+  return IFX_MemoryStream::Create(pBuffer, dwFileSize, true);
 }
 
 IFX_SeekableReadStream* CFGAS_FontMgr::CreateFontStream(
diff --git a/xfa/fgas/font/cfgas_gefont.cpp b/xfa/fgas/font/cfgas_gefont.cpp
index ffe791a..c1dfa2b 100644
--- a/xfa/fgas/font/cfgas_gefont.cpp
+++ b/xfa/fgas/font/cfgas_gefont.cpp
@@ -209,7 +209,7 @@
   if (bSaveStream)
     m_pStream.reset(pFontStream);
 
-  m_pFileRead.reset(FX_CreateFileRead(pFontStream, false));
+  m_pFileRead.reset(pFontStream->MakeSeekableReadStream());
   m_pFont = new CFX_Font;
   if (m_pFont->LoadFile(m_pFileRead.get()))
     return InitFont();
diff --git a/xfa/fxfa/app/xfa_ffdoc.cpp b/xfa/fxfa/app/xfa_ffdoc.cpp
index 1b5665b..cf5b289 100644
--- a/xfa/fxfa/app/xfa_ffdoc.cpp
+++ b/xfa/fxfa/app/xfa_ffdoc.cpp
@@ -417,8 +417,8 @@
   CPDF_StreamAcc streamAcc;
   streamAcc.LoadAllData(pStream);
 
-  IFX_SeekableReadStream* pImageFileRead =
-      FX_CreateMemoryStream((uint8_t*)streamAcc.GetData(), streamAcc.GetSize());
+  IFX_SeekableReadStream* pImageFileRead = IFX_MemoryStream::Create(
+      (uint8_t*)streamAcc.GetData(), streamAcc.GetSize());
 
   CFX_DIBitmap* pDibSource = XFA_LoadImageFromBuffer(
       pImageFileRead, FXCODEC_IMAGE_UNKNOWN, iImageXDpi, iImageYDpi);
diff --git a/xfa/fxfa/app/xfa_ffwidget.cpp b/xfa/fxfa/app/xfa_ffwidget.cpp
index e6c0c59..bc1854e 100644
--- a/xfa/fxfa/app/xfa_ffwidget.cpp
+++ b/xfa/fxfa/app/xfa_ffwidget.cpp
@@ -1066,11 +1066,11 @@
       pImageBuffer = FX_Alloc(uint8_t, iLength);
       int32_t iRead = XFA_Base64Decode(bsData.c_str(), pImageBuffer);
       if (iRead > 0) {
-        pImageFileRead = FX_CreateMemoryStream(pImageBuffer, iRead);
+        pImageFileRead = IFX_MemoryStream::Create(pImageBuffer, iRead);
       }
     } else {
       bsContent = CFX_ByteString::FromUnicode(wsImage);
-      pImageFileRead = FX_CreateMemoryStream(
+      pImageFileRead = IFX_MemoryStream::Create(
           const_cast<uint8_t*>(bsContent.raw_str()), bsContent.GetLength());
     }
   } else {
diff --git a/xfa/fxfa/parser/cxfa_dataexporter.cpp b/xfa/fxfa/parser/cxfa_dataexporter.cpp
index ad9693f..1ec9c44 100644
--- a/xfa/fxfa/parser/cxfa_dataexporter.cpp
+++ b/xfa/fxfa/parser/cxfa_dataexporter.cpp
@@ -197,7 +197,7 @@
         if (!pRichTextXML)
           break;
 
-        IFX_MemoryStream* pMemStream = FX_CreateMemoryStream(true);
+        IFX_MemoryStream* pMemStream = IFX_MemoryStream::Create(true);
         IFX_Stream* pTempStream = IFX_Stream::CreateStream(
             (IFX_SeekableWriteStream*)pMemStream, FX_STREAMACCESS_Text |
                                                       FX_STREAMACCESS_Write |
diff --git a/xfa/fxfa/parser/cxfa_node.cpp b/xfa/fxfa/parser/cxfa_node.cpp
index 18ea414..05ddcfc 100644
--- a/xfa/fxfa/parser/cxfa_node.cpp
+++ b/xfa/fxfa/parser/cxfa_node.cpp
@@ -1442,7 +1442,7 @@
       XFA_DataExporter_DealWithDataGroupNode(this);
     }
     std::unique_ptr<IFX_MemoryStream, ReleaseDeleter<IFX_MemoryStream>>
-        pMemoryStream(FX_CreateMemoryStream(true));
+        pMemoryStream(IFX_MemoryStream::Create(true));
     std::unique_ptr<IFX_Stream, ReleaseDeleter<IFX_Stream>> pStream(
         IFX_Stream::CreateStream(
             static_cast<IFX_SeekableWriteStream*>(pMemoryStream.get()),