瀏覽代碼

FontEditor: Make paste access to Clipboard atomic

This avoids data race issues and saves three out of four synchronous
requests to the ClipboardServer.
Ben Wiederhake 3 年之前
父節點
當前提交
d29f094ffa
共有 1 個文件被更改,包括 4 次插入4 次删除
  1. 4 4
      Userland/Applications/FontEditor/GlyphEditorWidget.cpp

+ 4 - 4
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;