1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 23:57:34 +00:00

LibIPC+Everywhere: Change IPC::encode's return type to ErrorOr

In doing so, this removes all uses of the Encoder's stream operator,
except for where it is currently still used in the generated IPC code.
So the stream operator currently discards any errors, which is the
existing behavior. A subsequent commit will propagate the errors.
This commit is contained in:
Timothy Flynn 2023-01-01 23:37:35 -05:00 committed by Andreas Kling
parent d0f3f3d5ff
commit ab99ed5fba
29 changed files with 224 additions and 238 deletions

View file

@ -366,10 +366,9 @@ Vector<Color> Color::tints(u32 steps, float max) const
}
template<>
bool IPC::encode(Encoder& encoder, Color const& color)
ErrorOr<void> IPC::encode(Encoder& encoder, Color const& color)
{
encoder << color.value();
return true;
return encoder.encode(color.value());
}
template<>

View file

@ -574,7 +574,7 @@ struct Formatter<Gfx::Color> : public Formatter<StringView> {
namespace IPC {
template<>
bool encode(Encoder&, Gfx::Color const&);
ErrorOr<void> encode(Encoder&, Gfx::Color const&);
template<>
ErrorOr<Gfx::Color> decode(Decoder&);

View file

@ -52,10 +52,11 @@ DeprecatedString FloatPoint::to_deprecated_string() const
namespace IPC {
template<>
bool encode(Encoder& encoder, Gfx::IntPoint const& point)
ErrorOr<void> encode(Encoder& encoder, Gfx::IntPoint const& point)
{
encoder << point.x() << point.y();
return true;
TRY(encoder.encode(point.x()));
TRY(encoder.encode(point.y()));
return {};
}
template<>

View file

@ -291,7 +291,7 @@ struct Formatter<Gfx::Point<T>> : Formatter<FormatString> {
namespace IPC {
template<>
bool encode(Encoder&, Gfx::IntPoint const&);
ErrorOr<void> encode(Encoder&, Gfx::IntPoint const&);
template<>
ErrorOr<Gfx::IntPoint> decode(Decoder&);

View file

@ -30,10 +30,11 @@ DeprecatedString FloatRect::to_deprecated_string() const
namespace IPC {
template<>
bool encode(Encoder& encoder, Gfx::IntRect const& rect)
ErrorOr<void> encode(Encoder& encoder, Gfx::IntRect const& rect)
{
encoder << rect.location() << rect.size();
return true;
TRY(encoder.encode(rect.location()));
TRY(encoder.encode(rect.size()));
return {};
}
template<>

View file

@ -1039,7 +1039,7 @@ struct Formatter<Gfx::Rect<T>> : Formatter<FormatString> {
namespace IPC {
template<>
bool encode(Encoder&, Gfx::IntRect const&);
ErrorOr<void> encode(Encoder&, Gfx::IntRect const&);
template<>
ErrorOr<Gfx::IntRect> decode(Decoder&);

View file

@ -23,21 +23,23 @@ ShareableBitmap::ShareableBitmap(NonnullRefPtr<Bitmap> bitmap, Tag)
namespace IPC {
template<>
bool encode(Encoder& encoder, Gfx::ShareableBitmap const& shareable_bitmap)
ErrorOr<void> encode(Encoder& encoder, Gfx::ShareableBitmap const& shareable_bitmap)
{
encoder << shareable_bitmap.is_valid();
TRY(encoder.encode(shareable_bitmap.is_valid()));
if (!shareable_bitmap.is_valid())
return true;
return {};
auto& bitmap = *shareable_bitmap.bitmap();
encoder << IPC::File(bitmap.anonymous_buffer().fd());
encoder << bitmap.size();
encoder << static_cast<u32>(bitmap.scale());
encoder << static_cast<u32>(bitmap.format());
TRY(encoder.encode(IPC::File(bitmap.anonymous_buffer().fd())));
TRY(encoder.encode(bitmap.size()));
TRY(encoder.encode(static_cast<u32>(bitmap.scale())));
TRY(encoder.encode(static_cast<u32>(bitmap.format())));
if (bitmap.is_indexed()) {
auto palette = bitmap.palette_to_vector();
encoder << palette;
TRY(encoder.encode(palette));
}
return true;
return {};
}
template<>

View file

@ -36,7 +36,7 @@ private:
namespace IPC {
template<>
bool encode(Encoder&, Gfx::ShareableBitmap const&);
ErrorOr<void> encode(Encoder&, Gfx::ShareableBitmap const&);
template<>
ErrorOr<Gfx::ShareableBitmap> decode(Decoder&);

View file

@ -28,10 +28,11 @@ DeprecatedString FloatSize::to_deprecated_string() const
namespace IPC {
template<>
bool encode(Encoder& encoder, Gfx::IntSize const& size)
ErrorOr<void> encode(Encoder& encoder, Gfx::IntSize const& size)
{
encoder << size.width() << size.height();
return true;
TRY(encoder.encode(size.width()));
TRY(encoder.encode(size.height()));
return {};
}
template<>

View file

@ -214,7 +214,7 @@ struct Formatter<Gfx::Size<T>> : Formatter<FormatString> {
namespace IPC {
template<>
bool encode(Encoder&, Gfx::IntSize const&);
ErrorOr<void> encode(Encoder&, Gfx::IntSize const&);
template<>
ErrorOr<Gfx::IntSize> decode(Decoder&);