mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 02:07:36 +00:00
LibJS+Everywhere: Propagate Cell::initialize errors from Heap::allocate
Callers that are already in a fallible context will now TRY to allocate cells. Callers in infallible contexts get a FIXME.
This commit is contained in:
parent
109b190a19
commit
b75b7f0c0d
178 changed files with 565 additions and 565 deletions
|
@ -41,15 +41,12 @@ public:
|
|||
}
|
||||
|
||||
template<typename T, typename... Args>
|
||||
NonnullGCPtr<T> allocate(Realm& realm, Args&&... args)
|
||||
ThrowCompletionOr<NonnullGCPtr<T>> allocate(Realm& realm, Args&&... args)
|
||||
{
|
||||
auto* memory = allocate_cell(sizeof(T));
|
||||
new (memory) T(forward<Args>(args)...);
|
||||
auto* cell = static_cast<T*>(memory);
|
||||
|
||||
// FIXME: Propagate this error.
|
||||
(void)memory->initialize(realm);
|
||||
|
||||
MUST_OR_THROW_OOM(memory->initialize(realm));
|
||||
return *cell;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue