vcl/inc/PhysicalFontCollection.hxx | 2 +- vcl/inc/unx/freetype_glyphcache.hxx | 2 +- vcl/source/font/PhysicalFontCollection.cxx | 24 +++++++++--------------- vcl/unx/generic/glyphs/freetype_glyphcache.cxx | 11 +++-------- 4 files changed, 14 insertions(+), 25 deletions(-)
New commits: commit 9467f10de690c622a210120e1963b2d755875a6b Author: Noel Grandin <[email protected]> AuthorDate: Mon Aug 13 14:35:52 2018 +0200 Commit: Noel Grandin <[email protected]> CommitDate: Wed Aug 15 08:40:23 2018 +0200 loplugin:useuniqueptr in FreetypeManager Change-Id: Idf8f843f2740bc20e6b0877b62dbfc778e31acd8 Reviewed-on: https://gerrit.libreoffice.org/59018 Tested-by: Jenkins Reviewed-by: Noel Grandin <[email protected]> diff --git a/vcl/inc/unx/freetype_glyphcache.hxx b/vcl/inc/unx/freetype_glyphcache.hxx index 910aa2a70ae6..57c9f02df2ad 100644 --- a/vcl/inc/unx/freetype_glyphcache.hxx +++ b/vcl/inc/unx/freetype_glyphcache.hxx @@ -100,7 +100,7 @@ public: FreetypeFont* CreateFont( const FontSelectPattern& ); private: - typedef std::unordered_map<sal_IntPtr,FreetypeFontInfo*> FontList; + typedef std::unordered_map<sal_IntPtr, std::unique_ptr<FreetypeFontInfo>> FontList; FontList maFontList; sal_IntPtr mnMaxFontId; diff --git a/vcl/unx/generic/glyphs/freetype_glyphcache.cxx b/vcl/unx/generic/glyphs/freetype_glyphcache.cxx index 32d6f9c8d10a..c747da4dae18 100644 --- a/vcl/unx/generic/glyphs/freetype_glyphcache.cxx +++ b/vcl/unx/generic/glyphs/freetype_glyphcache.cxx @@ -308,7 +308,7 @@ void FreetypeManager::AddFontFile( const OString& rNormalizedName, FreetypeFontInfo* pFontInfo = new FreetypeFontInfo( rDevFontAttr, rNormalizedName, nFaceNum, nFontId); - maFontList[ nFontId ] = pFontInfo; + maFontList[ nFontId ].reset(pFontInfo); if( mnMaxFontId < nFontId ) mnMaxFontId = nFontId; } @@ -317,18 +317,13 @@ void FreetypeManager::AnnounceFonts( PhysicalFontCollection* pToAdd ) const { for (auto const& font : maFontList) { - FreetypeFontInfo* pFreetypeFontInfo = font.second; + FreetypeFontInfo* pFreetypeFontInfo = font.second.get(); pFreetypeFontInfo->AnnounceFont( pToAdd ); } } void FreetypeManager::ClearFontList( ) { - for (auto const& font : maFontList) - { - FreetypeFontInfo* pFreetypeFontInfo = font.second; - delete pFreetypeFontInfo; - } maFontList.clear(); } @@ -344,7 +339,7 @@ FreetypeFont* FreetypeManager::CreateFont( const FontSelectPattern& rFSD ) sal_IntPtr nFontId = pFontFace->GetFontId(); FontList::iterator it = maFontList.find(nFontId); - FreetypeFontInfo* pFontInfo = it != maFontList.end() ? it->second : nullptr; + FreetypeFontInfo* pFontInfo = it != maFontList.end() ? it->second.get() : nullptr; if (!pFontInfo) return nullptr; commit 40ab9800d3d19eee59571092a9872c8fe9af4e38 Author: Noel Grandin <[email protected]> AuthorDate: Mon Aug 13 14:34:15 2018 +0200 Commit: Noel Grandin <[email protected]> CommitDate: Wed Aug 15 08:40:07 2018 +0200 loplugin:useuniqueptr in PhysicalFontCollection Change-Id: Id0a6a44848541968e9084a198366accda9c1149a Reviewed-on: https://gerrit.libreoffice.org/59017 Tested-by: Jenkins Reviewed-by: Noel Grandin <[email protected]> diff --git a/vcl/inc/PhysicalFontCollection.hxx b/vcl/inc/PhysicalFontCollection.hxx index fd944a211631..46caab87c7c7 100644 --- a/vcl/inc/PhysicalFontCollection.hxx +++ b/vcl/inc/PhysicalFontCollection.hxx @@ -70,7 +70,7 @@ public: private: mutable bool mbMatchData; // true if matching attributes are initialized - typedef std::unordered_map<OUString, PhysicalFontFamily*> PhysicalFontFamilies; + typedef std::unordered_map<OUString, std::unique_ptr<PhysicalFontFamily>> PhysicalFontFamilies; PhysicalFontFamilies maPhysicalFontFamilies; ImplPreMatchFontSubstitution* mpPreMatchHook; // device specific prematch substitution diff --git a/vcl/source/font/PhysicalFontCollection.cxx b/vcl/source/font/PhysicalFontCollection.cxx index 25edddd07b3d..7c5745a3a829 100644 --- a/vcl/source/font/PhysicalFontCollection.cxx +++ b/vcl/source/font/PhysicalFontCollection.cxx @@ -89,12 +89,6 @@ void PhysicalFontCollection::Clear() mnFallbackCount = -1; // clear all entries in the device font list - for (auto const& family : maPhysicalFontFamilies) - { - PhysicalFontFamily* pEntry = family.second; - delete pEntry; - } - maPhysicalFontFamilies.clear(); // match data must be recalculated too @@ -296,7 +290,7 @@ PhysicalFontFamily* PhysicalFontCollection::ImplFindFontFamilyBySearchName( cons if( it == maPhysicalFontFamilies.end() ) return nullptr; - PhysicalFontFamily* pFoundData = (*it).second; + PhysicalFontFamily* pFoundData = (*it).second.get(); return pFoundData; } @@ -311,12 +305,12 @@ PhysicalFontFamily *PhysicalFontCollection::FindOrCreateFontFamily( const OUStri PhysicalFontFamily* pFoundData = nullptr; if( it != maPhysicalFontFamilies.end() ) - pFoundData = (*it).second; + pFoundData = (*it).second.get(); if( !pFoundData ) { pFoundData = new PhysicalFontFamily( rFamilyName ); - maPhysicalFontFamilies[ rFamilyName ] = pFoundData; + maPhysicalFontFamilies[ rFamilyName ].reset(pFoundData); } return pFoundData; @@ -389,7 +383,7 @@ void PhysicalFontCollection::ImplInitMatchData() const for (auto const& family : maPhysicalFontFamilies) { const OUString& rSearchName = family.first; - PhysicalFontFamily* pEntry = family.second; + PhysicalFontFamily* pEntry = family.second.get(); pEntry->InitMatchData( rFontSubst, rSearchName ); } @@ -418,7 +412,7 @@ PhysicalFontFamily* PhysicalFontCollection::FindFontFamilyByAttributes( ImplFont for (auto const& family : maPhysicalFontFamilies) { - PhysicalFontFamily* pData = family.second; + PhysicalFontFamily* pData = family.second.get(); // Get all information about the matching font ImplFontAttrs nMatchType = pData->GetMatchType(); @@ -853,7 +847,7 @@ PhysicalFontFamily* PhysicalFontCollection::ImplFindFontFamilyOfDefaultFont() co for (auto const& family : maPhysicalFontFamilies) { - PhysicalFontFamily* pData = family.second; + PhysicalFontFamily* pData = family.second.get(); if( pData->GetMatchType() & ImplFontAttrs::Symbol ) continue; @@ -867,7 +861,7 @@ PhysicalFontFamily* PhysicalFontCollection::ImplFindFontFamilyOfDefaultFont() co // finding any font is better than finding no font at all auto it = maPhysicalFontFamilies.begin(); if( it != maPhysicalFontFamilies.end() ) - pFoundData = (*it).second; + pFoundData = (*it).second.get(); return pFoundData; } @@ -883,7 +877,7 @@ PhysicalFontCollection* PhysicalFontCollection::Clone() const for (auto const& family : maPhysicalFontFamilies) { - const PhysicalFontFamily* pFontFace = family.second; + const PhysicalFontFamily* pFontFace = family.second.get(); pFontFace->UpdateCloneFontList(*pClonedCollection); } @@ -896,7 +890,7 @@ std::unique_ptr<ImplDeviceFontList> PhysicalFontCollection::GetDeviceFontList() for (auto const& family : maPhysicalFontFamilies) { - const PhysicalFontFamily* pFontFamily = family.second; + const PhysicalFontFamily* pFontFamily = family.second.get(); pFontFamily->UpdateDevFontList( *pDeviceFontList ); } _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
