From d29f094ffa8fdc49b63fc8cedcf4d0d731fdfdf0 Mon Sep 17 00:00:00 2001 From: Ben Wiederhake Date: Sat, 20 Nov 2021 14:37:21 +0100 Subject: [PATCH] FontEditor: Make paste access to Clipboard atomic This avoids data race issues and saves three out of four synchronous requests to the ClipboardServer. --- Userland/Applications/FontEditor/GlyphEditorWidget.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Userland/Applications/FontEditor/GlyphEditorWidget.cpp b/Userland/Applications/FontEditor/GlyphEditorWidget.cpp index 1ef56ffcea..63f7311db7 100644 --- a/Userland/Applications/FontEditor/GlyphEditorWidget.cpp +++ b/Userland/Applications/FontEditor/GlyphEditorWidget.cpp @@ -84,16 +84,16 @@ void GlyphEditorWidget::copy_glyph() void GlyphEditorWidget::paste_glyph() { - auto mime_type = GUI::Clipboard::the().mime_type(); + auto [data, mime_type, metadata] = GUI::Clipboard::the().data_and_type(); if (!mime_type.starts_with("glyph/")) return; if (on_undo_event) on_undo_event(); - auto byte_buffer = GUI::Clipboard::the().data(); - auto buffer_height = GUI::Clipboard::the().data_and_type().metadata.get("height").value().to_int(); - auto buffer_width = GUI::Clipboard::the().data_and_type().metadata.get("width").value().to_int(); + auto byte_buffer = data.data(); + auto buffer_height = metadata.get("height").value().to_int(); + auto buffer_width = metadata.get("width").value().to_int(); u8 bits[buffer_width.value()][buffer_height.value()]; int i = 0;