mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-17 08:17:30 +03:00
Kernel: Make KBuffer::try_create_with* APIs OOM safe
This commit is contained in:
parent
2e34714ba1
commit
c8758d4faa
Notes:
sideshowbarker
2024-07-18 18:14:25 +09:00
Author: https://github.com/bgianfo Commit: https://github.com/SerenityOS/serenity/commit/c8758d4faaf Pull-request: https://github.com/SerenityOS/serenity/pull/7077
@ -32,7 +32,7 @@ public:
|
||||
auto region = MM.allocate_kernel_region(page_round_up(size), name, access, strategy);
|
||||
if (!region)
|
||||
return nullptr;
|
||||
return adopt_ref(*new KBufferImpl(region.release_nonnull(), size, strategy));
|
||||
return adopt_ref_if_nonnull(new KBufferImpl(region.release_nonnull(), size, strategy));
|
||||
}
|
||||
|
||||
static RefPtr<KBufferImpl> try_create_with_bytes(ReadonlyBytes bytes, Region::Access access, const char* name = "KBuffer", AllocationStrategy strategy = AllocationStrategy::Reserve)
|
||||
@ -41,7 +41,8 @@ public:
|
||||
if (!region)
|
||||
return nullptr;
|
||||
memcpy(region->vaddr().as_ptr(), bytes.data(), bytes.size());
|
||||
return adopt_ref(*new KBufferImpl(region.release_nonnull(), bytes.size(), strategy));
|
||||
|
||||
return adopt_ref_if_nonnull(new KBufferImpl(region.release_nonnull(), bytes.size(), strategy));
|
||||
}
|
||||
|
||||
static RefPtr<KBufferImpl> create_with_size(size_t size, Region::Access access, const char* name, AllocationStrategy strategy = AllocationStrategy::Reserve)
|
||||
|
Loading…
Reference in New Issue
Block a user