1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 19:58:11 +00:00

AK: Make Vector::try_* functions return ErrorOr<void>

Instead of signalling allocation failure with a bool return value
(false), we now use ErrorOr<void> and return ENOMEM as appropriate.
This allows us to use TRY() and MUST() with Vector. :^)
This commit is contained in:
Andreas Kling 2021-11-10 11:55:37 +01:00
parent cd49f30bea
commit 88b6428c25
16 changed files with 98 additions and 152 deletions

View file

@ -27,8 +27,8 @@ ErrorOr<FlatPtr> Process::sys$purge(int mode)
if (vmobject.is_anonymous()) {
// In the event that the append fails, only attempt to continue
// the purge if we have already appended something successfully.
if (!vmobjects.try_append(static_cast<Memory::AnonymousVMObject&>(vmobject)) && vmobjects.is_empty()) {
result = ENOMEM;
if (auto append_result = vmobjects.try_append(static_cast<Memory::AnonymousVMObject&>(vmobject)); append_result.is_error() && vmobjects.is_empty()) {
result = append_result.release_error();
return IterationDecision::Break;
}
}
@ -50,8 +50,8 @@ ErrorOr<FlatPtr> Process::sys$purge(int mode)
if (vmobject.is_inode()) {
// In the event that the append fails, only attempt to continue
// the purge if we have already appended something successfully.
if (!vmobjects.try_append(static_cast<Memory::InodeVMObject&>(vmobject)) && vmobjects.is_empty()) {
result = ENOMEM;
if (auto append_result = vmobjects.try_append(static_cast<Memory::InodeVMObject&>(vmobject)); append_result.is_error() && vmobjects.is_empty()) {
result = append_result.release_error();
return IterationDecision::Break;
}
}