vcl/opengl/x11/gdiimpl.cxx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-)
New commits: commit 7152aa8cba6ec58c4b234cd0024a5b1a980e0b04 Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> Date: Fri Jul 24 14:19:35 2015 +0900 Use LRU map for caching of native widgets Change-Id: Ia0423dac5309aabc5e81357cf4f67b5ee14bab31 (cherry picked from commit 3bc00eca4acf9dfc3b2834077cee552f32c8f107) Reviewed-on: https://gerrit.libreoffice.org/17556 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Miklos Vajna <vmik...@collabora.co.uk> diff --git a/vcl/opengl/x11/gdiimpl.cxx b/vcl/opengl/x11/gdiimpl.cxx index 3890b64..2114419 100644 --- a/vcl/opengl/x11/gdiimpl.cxx +++ b/vcl/opengl/x11/gdiimpl.cxx @@ -25,6 +25,8 @@ #include <vcl/opengl/OpenGLContext.hxx> #include <vcl/opengl/OpenGLHelper.hxx> +#include <o3tl/lru_map.hxx> + X11OpenGLSalGraphicsImpl::X11OpenGLSalGraphicsImpl( X11SalGraphics& rParent ): OpenGLSalGraphicsImpl(rParent,rParent.GetGeometryProvider()), mrParent(rParent) @@ -117,9 +119,10 @@ struct TextureCombo std::unique_ptr<OpenGLTexture> mpMask; }; -typedef std::unordered_map<ControlCacheKey, std::unique_ptr<TextureCombo>, ControlCacheHashFunction> ControlCacheType; +typedef typename std::pair<ControlCacheKey, std::unique_ptr<TextureCombo>> ControlCachePair; +typedef o3tl::lru_map<ControlCacheKey, std::unique_ptr<TextureCombo>, ControlCacheHashFunction> ControlCacheType; -ControlCacheType gTextureCache; +ControlCacheType gTextureCache(200); bool X11OpenGLSalGraphicsImpl::RenderPixmap(X11Pixmap* pPixmap, X11Pixmap* pMask, int nX, int nY, TextureCombo& rCombo) { @@ -235,7 +238,8 @@ bool X11OpenGLSalGraphicsImpl::RenderAndCacheNativeControl(X11Pixmap* pPixmap, X { std::unique_ptr<TextureCombo> pCombo(new TextureCombo); bool bResult = RenderPixmap(pPixmap, pMask, nX, nY, *pCombo); - gTextureCache[aControlCacheKey] = std::move(pCombo); + ControlCachePair pair(aControlCacheKey, std::move(pCombo)); + gTextureCache.insert(std::move(pair)); return bResult; }
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits