Chromium Code Reviews| Index: xfa/fgas/font/cfgas_fontmgr.cpp |
| diff --git a/xfa/fgas/font/cfgas_fontmgr.cpp b/xfa/fgas/font/cfgas_fontmgr.cpp |
| index 060dd95b48aff8aade8d7c94a1bd5d65d3844cf3..d7e7e8ed84a138a33cea7ab6f1ecacfdbca26991 100644 |
| --- a/xfa/fgas/font/cfgas_fontmgr.cpp |
| +++ b/xfa/fgas/font/cfgas_fontmgr.cpp |
| @@ -566,10 +566,12 @@ FX_POSITION CFX_FontSourceEnum_File::GetStartPosition() { |
| return (FX_POSITION)-1; |
| } |
| -IFX_FileAccess* CFX_FontSourceEnum_File::GetNext(FX_POSITION& pos) { |
| - IFX_FileAccess* pAccess = IFX_FileAccess::CreateDefault(m_wsNext.AsStringC()); |
| +CFX_RetainPtr<IFX_FileAccess> CFX_FontSourceEnum_File::GetNext( |
| + FX_POSITION& pos) { |
|
dsinclair
2016/12/07 23:05:03
Can this be a * instead of an &?
Tom Sepez
2016/12/07 23:26:55
It could, but this goes far beyond this -- the FX
|
| + CFX_RetainPtr<IFX_FileAccess> pAccess = |
| + IFX_FileAccess::CreateDefault(m_wsNext.AsStringC()); |
| m_wsNext = GetNextFile().UTF8Decode(); |
| - pos = m_wsNext.GetLength() != 0 ? pAccess : nullptr; |
| + pos = m_wsNext.GetLength() != 0 ? pAccess.Get() : nullptr; |
| return pAccess; |
| } |
| @@ -636,17 +638,12 @@ bool CFGAS_FontMgr::EnumFontsFromFontMapper() { |
| bool CFGAS_FontMgr::EnumFontsFromFiles() { |
| CFX_GEModule::Get()->GetFontMgr()->InitFTLibrary(); |
| FX_POSITION pos = m_pFontSource->GetStartPosition(); |
| - IFX_FileAccess* pFontSource = nullptr; |
| - CFX_RetainPtr<IFX_SeekableReadStream> pFontStream; |
| while (pos) { |
| - pFontSource = m_pFontSource->GetNext(pos); |
| - pFontStream = pFontSource->CreateFileStream(FX_FILEMODE_ReadOnly); |
| - if (!pFontStream) { |
| - pFontSource->Release(); |
| - continue; |
| - } |
| - RegisterFaces(pFontStream, nullptr); |
| - pFontSource->Release(); |
| + CFX_RetainPtr<IFX_FileAccess> pFontSource = m_pFontSource->GetNext(pos); |
| + CFX_RetainPtr<IFX_SeekableReadStream> pFontStream = |
| + pFontSource->CreateFileStream(FX_FILEMODE_ReadOnly); |
| + if (pFontStream) |
| + RegisterFaces(pFontStream, nullptr); |
| } |
| return m_InstalledFonts.GetSize() != 0; |
| } |