From f6d61562d41b8a49449d881da66a3d8fa519487f Mon Sep 17 00:00:00 2001 From: Chris Sherlock Date: Mon, 6 Oct 2014 18:16:16 +1100 Subject: vcl: Make ImplFontCharMap a pImpl and move functions to FontCharMap To do this, I've made FontCharMap a friend class for ImplFontCharMap, and have moved the functions directly into FontCharMap. In this patch, I am attempting to stop the direct use of ImplFontCharMap by anything other than FontCharMap. However, FontCharMap itself requires a refcounter, so we will use FontCharMapPtr to access the font character map. Change-Id: I509b990a8cbd911c5cc1572c7d24fc5348ca06d9 Reviewed-on: https://gerrit.libreoffice.org/11823 Reviewed-by: Chris Sherlock Tested-by: Chris Sherlock --- vcl/generic/glyphs/gcach_ftyp.cxx | 13 +++++++------ vcl/generic/glyphs/gcach_ftyp.hxx | 4 ++-- 2 files changed, 9 insertions(+), 8 deletions(-) (limited to 'vcl/generic/glyphs') diff --git a/vcl/generic/glyphs/gcach_ftyp.cxx b/vcl/generic/glyphs/gcach_ftyp.cxx index 4a8ddd014ded..9e12d5a2be05 100644 --- a/vcl/generic/glyphs/gcach_ftyp.cxx +++ b/vcl/generic/glyphs/gcach_ftyp.cxx @@ -1266,13 +1266,13 @@ bool ServerFont::GetGlyphBitmap8( sal_GlyphId aGlyphId, RawBitmap& rRawBitmap ) // determine unicode ranges in font -const ImplFontCharMapPtr ServerFont::GetImplFontCharMap( void ) const +const FontCharMapPtr ServerFont::GetFontCharMap() const { - const ImplFontCharMapPtr pIFCMap = mpFontInfo->GetImplFontCharMap(); - return pIFCMap; + const FontCharMapPtr pFCMap = mpFontInfo->GetFontCharMap(); + return pFCMap; } -const ImplFontCharMapPtr FtFontInfo::GetImplFontCharMap( void ) +const FontCharMapPtr FtFontInfo::GetFontCharMap() { // check if the charmap is already cached if( mpFontCharMap ) @@ -1283,12 +1283,13 @@ const ImplFontCharMapPtr FtFontInfo::GetImplFontCharMap( void ) bool bOK = GetFontCodeRanges( aCmapResult ); if( bOK ) { - ImplFontCharMapPtr pFontCharMap( new ImplFontCharMap( aCmapResult ) ); + FontCharMapPtr pFontCharMap( new FontCharMap ( aCmapResult ) ); mpFontCharMap = pFontCharMap; } else { - mpFontCharMap = ImplFontCharMap::GetDefaultMap(); + FontCharMapPtr pFontCharMap( new FontCharMap() ); + mpFontCharMap = pFontCharMap; } // mpFontCharMap on either branch now has a refcount of 1 return mpFontCharMap; diff --git a/vcl/generic/glyphs/gcach_ftyp.hxx b/vcl/generic/glyphs/gcach_ftyp.hxx index 803ce072a955..21cd6538bcca 100644 --- a/vcl/generic/glyphs/gcach_ftyp.hxx +++ b/vcl/generic/glyphs/gcach_ftyp.hxx @@ -84,7 +84,7 @@ public: void CacheGlyphIndex( sal_UCS4 cChar, int nGI ) const; bool GetFontCodeRanges( CmapResult& ) const; - const ImplFontCharMapPtr GetImplFontCharMap( void ); + const FontCharMapPtr GetFontCharMap(); private: FT_FaceRec_* maFaceFT; @@ -99,7 +99,7 @@ private: sal_IntPtr mnFontId; ImplDevFontAttributes maDevFontAttributes; - ImplFontCharMapPtr mpFontCharMap; + FontCharMapPtr mpFontCharMap; // cache unicode->glyphid mapping because looking it up is expensive // TODO: change to boost::unordered_multimap when a use case requires a m:n mapping -- cgit