Kaydet (Commit) e25a020d authored tarafından Caolán McNamara's avatar Caolán McNamara

Resolves: fdo#84729 buffer cache grows to over 9000 unused entries

regression from

commit a5351434
Author: tsahi glik <tsahi.glik@cloudon.com>
Date:   Thu Jan 16 12:51:44 2014 -0800
    fix rendering issues in iOS with aqua

because now the cache just fills up because nothing will have
a depth of "0" and a new entry is created every time.

0 could be seen to mean "whatever is a good non-1bit depth" or auto or
something. (Do the uses of "8" really mean 8)

0 passed to new VirtualDevice under Linux/X ends up using the depth of the
outputdev, so here set nBits to that value to start with and the problem
goes away

Change-Id: I4390d6f7edef9dc7430cc77e3518dc751a5f479d
üst 6a4b976b
...@@ -85,6 +85,9 @@ namespace ...@@ -85,6 +85,9 @@ namespace
::osl::MutexGuard aGuard(m_aMutex); ::osl::MutexGuard aGuard(m_aMutex);
VirtualDevice* pRetval = 0; VirtualDevice* pRetval = 0;
if (nBits == 0)
nBits = rOutDev.GetBitCount();
if(!maFreeBuffers.empty()) if(!maFreeBuffers.empty())
{ {
bool bOkay(false); bool bOkay(false);
...@@ -183,6 +186,8 @@ namespace ...@@ -183,6 +186,8 @@ namespace
maUsedBuffers.erase(aUsedFound); maUsedBuffers.erase(aUsedFound);
maFreeBuffers.push_back(&rDevice); maFreeBuffers.push_back(&rDevice);
SAL_WARN_IF(maFreeBuffers.size() > 1000, "drawinglayer", "excessive cached buffers, "
<< maFreeBuffers.size() << " entries!");
Start(); Start();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment