diff --git a/core/fxcrt/cfx_seekablestreamproxy.cpp b/core/fxcrt/cfx_seekablestreamproxy.cpp
index c0317ca..d01e1d1 100644
--- a/core/fxcrt/cfx_seekablestreamproxy.cpp
+++ b/core/fxcrt/cfx_seekablestreamproxy.cpp
@@ -192,7 +192,7 @@
   return new_pos.IsValid() ? iBufferSize : 0;
 }
 
-size_t CFX_SeekableStreamProxy::ReadBlock(void* pStr, size_t size) {
+size_t CFX_SeekableStreamProxy::ReadBlock(wchar_t* pStr, size_t size) {
   if (!pStr || size == 0)
     return 0;
 
@@ -202,7 +202,7 @@
     size_t iLen = ReadData(reinterpret_cast<uint8_t*>(pStr), iBytes);
     size = iLen / 2;
     if (m_wCodePage == FX_CODEPAGE_UTF16BE)
-      SwapByteOrder(static_cast<uint16_t*>(pStr), size);
+      SwapByteOrder(reinterpret_cast<uint16_t*>(pStr), size);
 
     if (sizeof(wchar_t) > 2 && size > 0)
       UTF16ToWChar(pStr, size);
@@ -229,10 +229,3 @@
 
   return size;
 }
-
-bool CFX_SeekableStreamProxy::ReadBlockAtOffset(void* pStr,
-                                                FX_FILESIZE offset,
-                                                size_t size) {
-  NOTREACHED();
-  return false;
-}
diff --git a/core/fxcrt/cfx_seekablestreamproxy.h b/core/fxcrt/cfx_seekablestreamproxy.h
index 70aff0a..d6ea160 100644
--- a/core/fxcrt/cfx_seekablestreamproxy.h
+++ b/core/fxcrt/cfx_seekablestreamproxy.h
@@ -11,31 +11,31 @@
 #include "core/fxcrt/fx_system.h"
 #include "core/fxcrt/retain_ptr.h"
 
-class CFX_SeekableStreamProxy final : public IFX_SeekableReadStream {
+class CFX_SeekableStreamProxy final : public Retainable {
  public:
-  enum class From {
-    Begin = 0,
-    Current,
-  };
-
   template <typename T, typename... Args>
   friend RetainPtr<T> pdfium::MakeRetain(Args&&... args);
 
-  // IFX_SeekableReadStream:
-  FX_FILESIZE GetSize() override;
-  FX_FILESIZE GetPosition() override;
-  bool IsEOF() override;
-  size_t ReadBlock(void* pStr, size_t size) override;
-  bool ReadBlockAtOffset(void* pStr, FX_FILESIZE offset, size_t size) override;
+  // Unlike IFX_SeekableStreamProxy, buffers and sizes are always in terms
+  // of the number of wchar_t elementss, not bytes.
+  FX_FILESIZE GetSize();  // Estimate under worst possible expansion.
+  bool IsEOF();
+  size_t ReadBlock(wchar_t* pStr, size_t size);
 
   uint16_t GetCodePage() const { return m_wCodePage; }
   void SetCodePage(uint16_t wCodePage);
 
  private:
+  enum class From {
+    Begin = 0,
+    Current,
+  };
+
   explicit CFX_SeekableStreamProxy(
       const RetainPtr<IFX_SeekableReadStream>& stream);
   ~CFX_SeekableStreamProxy() override;
 
+  FX_FILESIZE GetPosition();
   void Seek(From eSeek, FX_FILESIZE iOffset);
   size_t ReadData(uint8_t* pBuffer, size_t iBufferSize);
 
diff --git a/core/fxcrt/xml/cfx_xmlparser.h b/core/fxcrt/xml/cfx_xmlparser.h
index 3d7cc78..38866c8 100644
--- a/core/fxcrt/xml/cfx_xmlparser.h
+++ b/core/fxcrt/xml/cfx_xmlparser.h
@@ -13,6 +13,7 @@
 #include "core/fxcrt/fx_string.h"
 #include "core/fxcrt/retain_ptr.h"
 
+class CFX_SeekableStreamProxy;
 class CFX_XMLDocument;
 class CFX_XMLElement;
 class CFX_XMLNode;
@@ -53,7 +54,7 @@
   void ProcessTargetData();
 
   CFX_XMLNode* current_node_ = nullptr;
-  RetainPtr<IFX_SeekableReadStream> stream_;
+  RetainPtr<CFX_SeekableStreamProxy> stream_;
   std::vector<wchar_t> current_text_;
   size_t xml_plane_size_ = 1024;
   int32_t entity_start_ = -1;
