void ImageCache::CleanUp(int min_size_free) { Fragment *f = (Fragment *)cache.Last(); while (f && pixelcount + min_size_free > cachesize) { OpBitmap *bm = f->GetFragment(); pixelcount -= bm->Width() * bm->Height(); Fragment *prev = (Fragment *)f->Pred(); f->Out(); OP_DELETE(f); f = prev; } }
BOOL ImageCache::RemoveSharedMemoryBitmap() { Fragment *f = (Fragment *)cache.Last(); while (f) { X11OpBitmap* bm = (X11OpBitmap*)f->GetFragment(); if( bm->HasSharedMemory() ) { f->Out(); OP_DELETE(f); return TRUE; } f = (Fragment *)f->Pred(); } return FALSE; }