summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--BUILD.gn2
-rw-r--r--core/fxcrt/cfx_crtfileaccess.cpp17
-rw-r--r--core/fxcrt/cfx_crtfileaccess.h28
-rw-r--r--xfa/fgas/font/cfgas_fontmgr.cpp23
-rw-r--r--xfa/fgas/font/cfgas_fontmgr.h4
5 files changed, 16 insertions, 58 deletions
diff --git a/BUILD.gn b/BUILD.gn
index 0c6ddaefb8..5464d1c4cf 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -895,8 +895,6 @@ static_library("fxcrt") {
"core/fxcrt/cfx_char.h",
"core/fxcrt/cfx_checksumcontext.cpp",
"core/fxcrt/cfx_checksumcontext.h",
- "core/fxcrt/cfx_crtfileaccess.cpp",
- "core/fxcrt/cfx_crtfileaccess.h",
"core/fxcrt/cfx_decimal.cpp",
"core/fxcrt/cfx_decimal.h",
"core/fxcrt/cfx_seekablestreamproxy.cpp",
diff --git a/core/fxcrt/cfx_crtfileaccess.cpp b/core/fxcrt/cfx_crtfileaccess.cpp
deleted file mode 100644
index b6a6a74d1c..0000000000
--- a/core/fxcrt/cfx_crtfileaccess.cpp
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright 2017 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#include "core/fxcrt/cfx_crtfileaccess.h"
-
-CFX_CRTFileAccess::CFX_CRTFileAccess(const WideStringView& wsPath)
- : m_path(wsPath) {}
-
-CFX_CRTFileAccess::~CFX_CRTFileAccess() {}
-
-RetainPtr<IFX_SeekableStream> CFX_CRTFileAccess::CreateFileStream(
- uint32_t dwModes) {
- return IFX_SeekableStream::CreateFromFilename(m_path.c_str(), dwModes);
-}
diff --git a/core/fxcrt/cfx_crtfileaccess.h b/core/fxcrt/cfx_crtfileaccess.h
deleted file mode 100644
index 962a6d122f..0000000000
--- a/core/fxcrt/cfx_crtfileaccess.h
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright 2017 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef CORE_FXCRT_CFX_CRTFILEACCESS_H_
-#define CORE_FXCRT_CFX_CRTFILEACCESS_H_
-
-#include "core/fxcrt/fx_stream.h"
-#include "core/fxcrt/fx_string.h"
-#include "core/fxcrt/retain_ptr.h"
-
-class CFX_CRTFileAccess : public Retainable {
- public:
- template <typename T, typename... Args>
- friend RetainPtr<T> pdfium::MakeRetain(Args&&... args);
-
- RetainPtr<IFX_SeekableStream> CreateFileStream(uint32_t dwModes);
-
- private:
- explicit CFX_CRTFileAccess(const WideStringView& wsPath);
- ~CFX_CRTFileAccess() override;
-
- WideString m_path;
-};
-
-#endif // CORE_FXCRT_CFX_CRTFILEACCESS_H_
diff --git a/xfa/fgas/font/cfgas_fontmgr.cpp b/xfa/fgas/font/cfgas_fontmgr.cpp
index 6215766666..7beba120fa 100644
--- a/xfa/fgas/font/cfgas_fontmgr.cpp
+++ b/xfa/fgas/font/cfgas_fontmgr.cpp
@@ -692,13 +692,16 @@ bool CFX_FontSourceEnum_File::HasStartPosition() {
return m_wsNext.GetLength() != 0;
}
-RetainPtr<CFX_CRTFileAccess> CFX_FontSourceEnum_File::GetNext() {
+// <next exists, stream for next>
+std::pair<bool, RetainPtr<IFX_SeekableStream>>
+CFX_FontSourceEnum_File::GetNext() {
if (m_wsNext.GetLength() == 0)
- return nullptr;
+ return {false, nullptr};
- auto pAccess = pdfium::MakeRetain<CFX_CRTFileAccess>(m_wsNext.AsStringView());
+ auto stream = IFX_SeekableStream::CreateFromFilename(m_wsNext.c_str(),
+ FX_FILEMODE_ReadOnly);
m_wsNext = GetNextFile().UTF8Decode();
- return pAccess;
+ return {true, stream};
}
CFGAS_FontMgr::CFGAS_FontMgr()
@@ -735,11 +738,13 @@ bool CFGAS_FontMgr::EnumFontsFromFiles() {
if (!m_pFontSource->HasStartPosition())
return !m_InstalledFonts.empty();
- while (RetainPtr<CFX_CRTFileAccess> pFontSource = m_pFontSource->GetNext()) {
- RetainPtr<IFX_SeekableReadStream> pFontStream =
- pFontSource->CreateFileStream(FX_FILEMODE_ReadOnly);
- if (pFontStream)
- RegisterFaces(pFontStream, nullptr);
+ bool has_next;
+ RetainPtr<IFX_SeekableStream> stream;
+ std::tie(has_next, stream) = m_pFontSource->GetNext();
+ while (has_next) {
+ if (stream)
+ RegisterFaces(stream, nullptr);
+ std::tie(has_next, stream) = m_pFontSource->GetNext();
}
return !m_InstalledFonts.empty();
}
diff --git a/xfa/fgas/font/cfgas_fontmgr.h b/xfa/fgas/font/cfgas_fontmgr.h
index f1e75bad95..351b5d624c 100644
--- a/xfa/fgas/font/cfgas_fontmgr.h
+++ b/xfa/fgas/font/cfgas_fontmgr.h
@@ -11,9 +11,9 @@
#include <map>
#include <memory>
#include <set>
+#include <utility>
#include <vector>
-#include "core/fxcrt/cfx_crtfileaccess.h"
#include "core/fxcrt/cfx_seekablestreamproxy.h"
#include "core/fxcrt/fx_extension.h"
#include "core/fxcrt/observable.h"
@@ -104,7 +104,7 @@ class CFX_FontSourceEnum_File {
~CFX_FontSourceEnum_File();
bool HasStartPosition();
- RetainPtr<CFX_CRTFileAccess> GetNext();
+ std::pair<bool, RetainPtr<IFX_SeekableStream>> GetNext();
private:
struct HandleParentPath {