diff options
Diffstat (limited to 'vcl/win/gdi/winlayout.cxx')
-rw-r--r-- | vcl/win/gdi/winlayout.cxx | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/vcl/win/gdi/winlayout.cxx b/vcl/win/gdi/winlayout.cxx index 7b8f5df30180..935aeb84d2a4 100644 --- a/vcl/win/gdi/winlayout.cxx +++ b/vcl/win/gdi/winlayout.cxx @@ -345,6 +345,8 @@ float WinFontInstance::getHScale() const return nWidth / nHeight; } +namespace { + struct BlobReference { hb_blob_t* mpBlob; @@ -359,7 +361,13 @@ struct BlobReference } ~BlobReference() { hb_blob_destroy(mpBlob); } }; + +} + using BlobCacheKey = std::pair<rtl::Reference<PhysicalFontFace>, hb_tag_t>; + +namespace { + struct BlobCacheKeyHash { std::size_t operator()(BlobCacheKey const& rKey) const @@ -371,6 +379,8 @@ struct BlobCacheKeyHash } }; +} + static hb_blob_t* getFontTable(hb_face_t* /*face*/, hb_tag_t nTableTag, void* pUserData) { static o3tl::lru_map<BlobCacheKey, BlobReference, BlobCacheKeyHash> gCache(50); |