Andreas Kling
79fa9765ca
Kernel: Replace KResult and KResultOr<T> with Error and ErrorOr<T>
...
We now use AK::Error and AK::ErrorOr<T> in both kernel and userspace!
This was a slightly tedious refactoring that took a long time, so it's
not unlikely that some bugs crept in.
Nevertheless, it does pass basic functionality testing, and it's just
real nice to finally see the same pattern in all contexts. :^)
2021-11-08 01:10:53 +01:00
Andreas Kling
7ee10c6926
AK: Add some more ways to construct Error and ErrorOr<T>
...
This is preparation for using Error in the kernel instead of KResult.
2021-11-08 00:36:35 +01:00
Andreas Kling
5e473a63d3
AK: Make Error.h pull in Try.h
...
Users of this API will want TRY().
2021-11-08 00:36:19 +01:00
Andreas Kling
72f3fd824e
LibSQL: Replace Result<T, E> use with ErrorOr<T>
2021-11-08 00:35:27 +01:00
Andreas Kling
fbe8f185b5
Profiler: Replace Result<T, E> use with ErrorOr<T>
2021-11-08 00:35:27 +01:00
Andreas Kling
e841f3c283
AK: Add a variant of adopt_nonnull_own_or_enomem() for userspace
...
This variant returns ErrorOr<NonnullOwnPtr<T>> instead of KResultOr.
Eventually the KResultOr variant should go away once the kernel adopts
Error and ErrorOr<T>.
2021-11-08 00:35:27 +01:00
Andreas Kling
2c70c479ab
LibIPC: Replace Result<T, E> use with ErrorOr<T>
2021-11-08 00:35:27 +01:00
Andreas Kling
0b0c4e82b9
LibCore: Replace Result<T, E> use with ErrorOr<T> in Core::FileWatcher
2021-11-08 00:35:27 +01:00
Andreas Kling
4eeab4cfc8
LibCore: Replace Result<T, E> use with ErrorOr<T> in Core::Account
2021-11-08 00:35:27 +01:00
Andreas Kling
01a6a4f7c4
RequestServer: Replace Result<T, E> use with ErrorOr<T>
2021-11-08 00:35:27 +01:00
Andreas Kling
fbbb87d517
DHCPClient: Replace Result<T, E> use with ErrorOr<T>
2021-11-08 00:35:27 +01:00
Andreas Kling
d1477bcb8e
Shell: Replace Result<T, E> use with ErrorOr<T>
2021-11-08 00:35:27 +01:00
Andreas Kling
184810a581
AK: Remove now-unused OSError class
...
This has been superseded by the more generally useful AK::Error :^)
2021-11-08 00:35:27 +01:00
Andreas Kling
c6cc0a88a1
LibKeyboard: Use ErrorOr<T> for CharacterMap::fetch_system_map()
2021-11-08 00:35:27 +01:00
Andreas Kling
e76b21a66f
LibCore: Use ErrorOr<T> for Core::get_password()
2021-11-08 00:35:27 +01:00
Andreas Kling
801d46d02c
PixelPaint: Use ErrorOr<T> for Image and Layer creation helpers
2021-11-08 00:35:27 +01:00
Andreas Kling
9268ed9605
PixelPaint: Use ErrorOr<T> for Image::try_compose_bitmap()
2021-11-08 00:35:27 +01:00
Andreas Kling
77fd4625b5
PixelPaint: Use ErrorOr<T> for Image writing/exporting functions
2021-11-08 00:35:27 +01:00
Andreas Kling
a7f1f1c34b
LibCore: Use ErrorOr<T> for Core::File::open()
2021-11-08 00:35:27 +01:00
Andreas Kling
fac2550143
LibCore: Use ErrorOr<T> for Core::File::size()
2021-11-08 00:35:27 +01:00
Andreas Kling
4a2b718ba2
LibCore: Use ErrorOr<T> for Core::File::copy_file()
2021-11-08 00:35:27 +01:00
Andreas Kling
c7e62d448c
LibCore: Use ErrorOr<T> for Core::File::remove()
...
This function returns a subclass of Error, which is now possible.
2021-11-08 00:35:27 +01:00
Andreas Kling
e253cf694e
AK: Allow subclassing Error
2021-11-08 00:35:27 +01:00
Andreas Kling
b2170c11a4
LibCore: Use ErrorOr<T> for Core::File::link_file()
2021-11-08 00:35:27 +01:00
Andreas Kling
0f5477c721
AK: Use ErrorOr<T> for MappedFile factories
...
Replace Result<T, E> with ErrorOr<T> and propagate the error to callers.
2021-11-08 00:35:27 +01:00
Andreas Kling
c837bd551e
AK: Don't define ENABLE_COMPILETIME_FORMAT_CHECK when parsed by CLion
2021-11-08 00:35:27 +01:00
Andreas Kling
880964755b
AK: Don't define AK_HAS_CONDITIONALLY_TRIVIAL when parsed by CLion IDE
...
This feature confuses CLion's parser, so let's turn it off if we see the
__CLION_IDE_ macro as well.
2021-11-08 00:35:27 +01:00
Andreas Kling
202950bb01
AK: Make Error and ErrorOr<T> work in Lagom as well :^)
...
ErrnoCode is not a thing outside __serenity__, so let's not make
assumptions about it existing.
2021-11-08 00:35:27 +01:00
Andreas Kling
6e255b262f
LibGfx: Use ErrorOr<T> for try_create_from_serialized_byte_buffer()
2021-11-08 00:35:27 +01:00
Andreas Kling
0de33b3d6c
LibGfx: Use ErrorOr<T> for Bitmap::try_create()
...
Another one that was used in a fajillion places.
2021-11-08 00:35:27 +01:00
Andreas Kling
235f39e449
LibGfx: Use ErrorOr<T> for Bitmap::try_load_from_file()
...
This was used in a lot of places, so this patch makes liberal use of
ErrorOr<T>::release_value_but_fixme_should_propagate_errors().
2021-11-08 00:35:27 +01:00
Andreas Kling
16f064d9be
LibGfx: Convert Gfx::Bitmap to east const style
2021-11-08 00:35:27 +01:00
Andreas Kling
d85d741c59
LibGfx: Deduplicate code in Bitmap::try_load_from_file()
...
This can share logic with try_load_from_fd_and_close(), we just need to
open the file first. :^)
2021-11-08 00:35:27 +01:00
Andreas Kling
09cba7c780
LibGfx: Use ErrorOr<T> for Bitmap infrastructure used by ShareableBitmap
...
This also allows us to get rid of the ShareableBitmap(Bitmap)
constructor which was easy to misuse. Everyone now uses Bitmap's
to_shareable_bitmap() helper instead.
2021-11-08 00:35:27 +01:00
Andreas Kling
8262bbf624
LibGfx: Use ErrorOr<T> for Bitmap::cropped()
2021-11-08 00:35:27 +01:00
Andreas Kling
5e41c70e83
LibGfx: Use ErrorOr<T> for Bitmap::scaled()
2021-11-08 00:35:27 +01:00
Andreas Kling
db90b4554e
LibGfx: Use ErrorOr<T> for Bitmap::flipped()
2021-11-08 00:35:27 +01:00
Andreas Kling
69c4614a94
LibGfx: Use ErrorOr<T> for Bitmap::rotated()
2021-11-08 00:35:27 +01:00
Andreas Kling
2da4cfcc80
LibGfx: Use ErrorOr<T> for Bitmap::clone()
2021-11-08 00:35:27 +01:00
Andreas Kling
c417820bff
LibGfx: Use ErrorOr<T> for Bitmap::try_create_shareable()
2021-11-08 00:35:27 +01:00
Andreas Kling
83d1460ee8
LibGfx: Use ErrorOr<T> for Bitmap::try_create_wrapper()
2021-11-08 00:35:27 +01:00
Andreas Kling
2116620db8
AK: Add ErrorOr<T>::release_value_but_fixme_should_propagate_errors()
...
This is an alternative to ErrorOr<T>::release_value() that can be used
when converting code to signal that we're releasing the value without
error propagation as a way to move forward now.
This makes these cases much easier to find later on, once more paths for
error propagation are available.
2021-11-08 00:35:27 +01:00
Andreas Kling
f23f99d51b
LibGfx: Use ErrorOr<T> for Bitmap::try_create_with_anonymous_buffer()
2021-11-08 00:35:27 +01:00
Andreas Kling
c6b4e7a2f6
LibIPC: Add ClientConnection::shutdown_with_error()
...
Before this, we only had ClientConnection::did_misbehave() to report an
error and shut the connection down. But it's not fair to say that *all*
errors are the client misbehaving! A typical non-misbehavior is resource
allocation failure on the server side.
2021-11-08 00:35:27 +01:00
Andreas Kling
e5dde37e24
AK: Bring AK::Error into the global namespace
2021-11-08 00:35:27 +01:00
Andreas Kling
a54be656ae
LibRegex: Don't push LibRegex's "Error" into the global namespace
2021-11-08 00:35:27 +01:00
Andreas Kling
af562c857e
LibGfx: Use ErrorOr<T> for Gfx::Bitmap::allocate_backing_store()
2021-11-08 00:35:27 +01:00
Andreas Kling
56992f90b7
AK: Add adopt_nonnull_ref_or_enomem() for userspace
...
We already had this mechanism in the kernel. Let's have it in userspace
as well. This return an ErrorOr<NonnullRefPt<T>>. :^)
2021-11-08 00:35:27 +01:00
Andreas Kling
e2eabb4132
LibCore: Use ErrorOr<T> in Core::AnonymousBuffer
2021-11-08 00:35:27 +01:00
Andreas Kling
c4edb9f6c2
AK: Add Error and ErrorOr<T>
...
The goal with these is to eventually replace AK::Result, KResult and
KResultOr<T> with something that works (and makes sense) in both kernel
and userspace.
This first cut of Error can be made from an errno code, or from a string
literal (StringView)
2021-11-08 00:35:27 +01:00