1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-06-01 02:28:12 +00:00

LibGfx: Make Gfx::Bitmap::set_nonvolatile() report allocation failure

Making a bitmap non-volatile after being volatile may fail to allocate
physical pages after the kernel stole the old pages in a purge.

This is different from the pages being purged, but reallocated. In that
case, they are simply replaced with zero-fill-on-demand pages as if
they were freshly allocated.
This commit is contained in:
Andreas Kling 2021-07-24 22:49:48 +02:00
parent 24b5295b30
commit 143443e0b6
23 changed files with 57 additions and 46 deletions

View file

@ -161,12 +161,12 @@ void PPMImageDecoderPlugin::set_volatile()
m_context->bitmap->set_volatile();
}
bool PPMImageDecoderPlugin::set_nonvolatile()
bool PPMImageDecoderPlugin::set_nonvolatile(bool& was_purged)
{
if (!m_context->bitmap)
return false;
return m_context->bitmap->set_nonvolatile();
return m_context->bitmap->set_nonvolatile(was_purged);
}
bool PPMImageDecoderPlugin::sniff()