summaryrefslogtreecommitdiff
path: root/core/fpdfapi/render/cpdf_type3cache.cpp
diff options
context:
space:
mode:
authorTom Sepez <tsepez@chromium.org>2017-04-21 13:10:34 -0700
committerChromium commit bot <commit-bot@chromium.org>2017-04-21 20:55:15 +0000
commit0748d3cb67926bfd38d3d67901fdda87109c6895 (patch)
tree36a6934a9ee51edf8032c3579580ba2f281be71a /core/fpdfapi/render/cpdf_type3cache.cpp
parente150045e9d1944b654b600c0d77f924ee0c5032d (diff)
downloadpdfium-0748d3cb67926bfd38d3d67901fdda87109c6895.tar.xz
Return unique_ptr from CPDF_Type3Cache::RenderGlyph().
Change-Id: I0701c6e5a9c1789f5fe929778df0e2aa55d8bf00 Reviewed-on: https://pdfium-review.googlesource.com/4434 Reviewed-by: Lei Zhang <thestig@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: Tom Sepez <tsepez@chromium.org>
Diffstat (limited to 'core/fpdfapi/render/cpdf_type3cache.cpp')
-rw-r--r--core/fpdfapi/render/cpdf_type3cache.cpp20
1 files changed, 11 insertions, 9 deletions
diff --git a/core/fpdfapi/render/cpdf_type3cache.cpp b/core/fpdfapi/render/cpdf_type3cache.cpp
index b7a4cb808f..699b24f15c 100644
--- a/core/fpdfapi/render/cpdf_type3cache.cpp
+++ b/core/fpdfapi/render/cpdf_type3cache.cpp
@@ -104,19 +104,21 @@ CFX_GlyphBitmap* CPDF_Type3Cache::LoadGlyph(uint32_t charcode,
}
auto it2 = pSizeCache->m_GlyphMap.find(charcode);
if (it2 != pSizeCache->m_GlyphMap.end())
- return it2->second;
+ return it2->second.get();
- CFX_GlyphBitmap* pGlyphBitmap =
+ std::unique_ptr<CFX_GlyphBitmap> pNewBitmap =
RenderGlyph(pSizeCache, charcode, pMatrix, retinaScaleX, retinaScaleY);
- pSizeCache->m_GlyphMap[charcode] = pGlyphBitmap;
+ CFX_GlyphBitmap* pGlyphBitmap = pNewBitmap.get();
+ pSizeCache->m_GlyphMap[charcode] = std::move(pNewBitmap);
return pGlyphBitmap;
}
-CFX_GlyphBitmap* CPDF_Type3Cache::RenderGlyph(CPDF_Type3Glyphs* pSize,
- uint32_t charcode,
- const CFX_Matrix* pMatrix,
- float retinaScaleX,
- float retinaScaleY) {
+std::unique_ptr<CFX_GlyphBitmap> CPDF_Type3Cache::RenderGlyph(
+ CPDF_Type3Glyphs* pSize,
+ uint32_t charcode,
+ const CFX_Matrix* pMatrix,
+ float retinaScaleX,
+ float retinaScaleY) {
const CPDF_Type3Char* pChar = m_pFont->LoadChar(charcode);
if (!pChar || !pChar->m_pBitmap)
return nullptr;
@@ -163,7 +165,7 @@ CFX_GlyphBitmap* CPDF_Type3Cache::RenderGlyph(CPDF_Type3Glyphs* pSize,
if (!pResBitmap)
return nullptr;
- CFX_GlyphBitmap* pGlyph = new CFX_GlyphBitmap;
+ auto pGlyph = pdfium::MakeUnique<CFX_GlyphBitmap>();
pGlyph->m_Left = left;
pGlyph->m_Top = -top;
pGlyph->m_pBitmap->TakeOver(std::move(pResBitmap));