summaryrefslogtreecommitdiffstats
path: root/src/openvg/qvgimagepool.cpp
diff options
context:
space:
mode:
authorGunnar Sletta <gunnar.sletta@nokia.com>2010-09-27 11:41:38 +0200
committerGunnar Sletta <gunnar.sletta@nokia.com>2010-09-27 11:41:38 +0200
commit2271315eb46665b0a9e61ff0525340713163c1b6 (patch)
treed0068e34924eca85eb6af4089b3f443a89c929f6 /src/openvg/qvgimagepool.cpp
parent33e7ee9d1866f12a9b92fe4b5549c31e30974d8e (diff)
parent53d010a989aed878c21522cbaf0d75c7cf821b42 (diff)
Merge branch 'master' of scm.dev.nokia.troll.no:qt/qt
Conflicts: configure src/corelib/global/qglobal.h
Diffstat (limited to 'src/openvg/qvgimagepool.cpp')
-rw-r--r--src/openvg/qvgimagepool.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/openvg/qvgimagepool.cpp b/src/openvg/qvgimagepool.cpp
index 78277aa4e8..0c236ea3e9 100644
--- a/src/openvg/qvgimagepool.cpp
+++ b/src/openvg/qvgimagepool.cpp
@@ -154,16 +154,23 @@ bool QVGImagePool::reclaimSpace(VGImageFormat format,
Q_UNUSED(width);
Q_UNUSED(height);
- if (data)
+ bool succeeded = false;
+ bool wasInLRU = false;
+ if (data) {
+ wasInLRU = data->inLRU;
moveToHeadOfLRU(data);
+ }
QVGPixmapData *lrudata = pixmapLRU();
if (lrudata && lrudata != data) {
lrudata->reclaimImages();
- return true;
+ succeeded = true;
}
- return false;
+ if (data && !wasInLRU)
+ removeFromLRU(data);
+
+ return succeeded;
}
void QVGImagePool::hibernate()