1
0
Fork 0
mirror of https://github.com/LadybirdBrowser/ladybird.git synced 2025-06-12 02:30:30 +09:00

Kernel: Merge PurgeableVMObject into AnonymousVMObject

This implements memory commitments and lazy-allocation of committed
memory.
This commit is contained in:
Tom 2020-09-05 15:52:14 -06:00 committed by Andreas Kling
parent b2a52f6208
commit 476f17b3f1
Notes: sideshowbarker 2024-07-19 00:14:30 +09:00
35 changed files with 937 additions and 564 deletions

View file

@ -51,6 +51,8 @@ DoubleBuffer::DoubleBuffer(size_t capacity)
void DoubleBuffer::flip()
{
if (m_storage.is_null())
return;
ASSERT(m_read_buffer_index == m_read_buffer->size);
swap(m_read_buffer, m_write_buffer);
m_write_buffer->size = 0;
@ -60,7 +62,7 @@ void DoubleBuffer::flip()
ssize_t DoubleBuffer::write(const UserOrKernelBuffer& data, size_t size)
{
if (!size)
if (!size || m_storage.is_null())
return 0;
ASSERT(size > 0);
LOCKER(m_lock);
@ -77,7 +79,7 @@ ssize_t DoubleBuffer::write(const UserOrKernelBuffer& data, size_t size)
ssize_t DoubleBuffer::read(UserOrKernelBuffer& data, size_t size)
{
if (!size)
if (!size || m_storage.is_null())
return 0;
ASSERT(size > 0);
LOCKER(m_lock);