1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 21:47:45 +00:00

LibIPC: Explicitly mark HashMap copy, offer move interface

This commit is contained in:
Ben Wiederhake 2023-05-13 20:50:30 +02:00 committed by Jelle Raaijmakers
parent 688d8febe4
commit 362773d4a6
4 changed files with 8 additions and 8 deletions

View file

@ -150,7 +150,7 @@ ErrorOr<JsonObject> Clipboard::DataAndType::to_json() const
void Clipboard::set_data(ReadonlyBytes data, DeprecatedString const& type, HashMap<DeprecatedString, DeprecatedString> const& metadata)
{
if (data.is_empty()) {
connection().async_set_clipboard_data({}, type, metadata);
connection().async_set_clipboard_data({}, type, metadata.clone().release_value_but_fixme_should_propagate_errors());
return;
}
@ -161,18 +161,18 @@ void Clipboard::set_data(ReadonlyBytes data, DeprecatedString const& type, HashM
}
auto buffer = buffer_or_error.release_value();
memcpy(buffer.data<void>(), data.data(), data.size());
connection().async_set_clipboard_data(move(buffer), type, metadata);
connection().async_set_clipboard_data(move(buffer), type, metadata.clone().release_value_but_fixme_should_propagate_errors());
}
void Clipboard::set_bitmap(Gfx::Bitmap const& bitmap, HashMap<DeprecatedString, DeprecatedString> const& additional_metadata)
{
HashMap<DeprecatedString, DeprecatedString> metadata(additional_metadata);
HashMap<DeprecatedString, DeprecatedString> metadata = additional_metadata.clone().release_value_but_fixme_should_propagate_errors();
metadata.set("width", DeprecatedString::number(bitmap.width()));
metadata.set("height", DeprecatedString::number(bitmap.height()));
metadata.set("scale", DeprecatedString::number(bitmap.scale()));
metadata.set("format", DeprecatedString::number((int)bitmap.format()));
metadata.set("pitch", DeprecatedString::number(bitmap.pitch()));
set_data({ bitmap.scanline(0), bitmap.size_in_bytes() }, "image/x-serenityos", metadata);
set_data({ bitmap.scanline(0), bitmap.size_in_bytes() }, "image/x-serenityos", move(metadata));
}
void Clipboard::clear()

View file

@ -17,8 +17,8 @@ class Dictionary {
public:
Dictionary() = default;
Dictionary(HashMap<DeprecatedString, DeprecatedString> const& initial_entries)
: m_entries(initial_entries)
Dictionary(HashMap<DeprecatedString, DeprecatedString>&& initial_entries)
: m_entries(move(initial_entries))
{
}

View file

@ -38,7 +38,7 @@ void ConnectionFromClient::set_clipboard_data(Core::AnonymousBuffer const& data,
Messages::ClipboardServer::GetClipboardDataResponse ConnectionFromClient::get_clipboard_data()
{
auto& storage = Storage::the();
return { storage.buffer(), storage.mime_type(), storage.metadata() };
return { storage.buffer(), storage.mime_type(), storage.metadata().clone().release_value_but_fixme_should_propagate_errors() };
}
void ConnectionFromClient::notify_about_clipboard_change()

View file

@ -71,5 +71,5 @@ void ConnectionToClipboardServer::set_bitmap(Gfx::Bitmap const& bitmap)
VERIFY(!buffer_or_error.is_error());
auto buffer = buffer_or_error.release_value();
memcpy(buffer.data<u8>(), data.data(), data.size());
this->async_set_clipboard_data(buffer, "image/x-serenityos", metadata);
this->async_set_clipboard_data(buffer, "image/x-serenityos", move(metadata));
}