mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 01:27:34 +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:
parent
24b5295b30
commit
143443e0b6
23 changed files with 57 additions and 46 deletions
|
@ -227,7 +227,10 @@ public:
|
|||
|
||||
[[nodiscard]] bool is_volatile() const { return m_volatile; }
|
||||
void set_volatile();
|
||||
[[nodiscard]] bool set_nonvolatile();
|
||||
|
||||
// Returns true if making the bitmap non-volatile succeeded. `was_purged` indicates status of contents.
|
||||
// Returns false if there was not enough memory.
|
||||
[[nodiscard]] bool set_nonvolatile(bool& was_purged);
|
||||
|
||||
[[nodiscard]] Core::AnonymousBuffer& anonymous_buffer() { return m_buffer; }
|
||||
[[nodiscard]] Core::AnonymousBuffer const& anonymous_buffer() const { return m_buffer; }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue