From ac36d272d32812899204b0b91ee9c50411e459f2 Mon Sep 17 00:00:00 2001 From: Linus Groh Date: Sun, 17 Jul 2022 00:34:25 +0100 Subject: [PATCH] LibWeb: Avoid needless copies during Blob construction --- Userland/Libraries/LibWeb/FileAPI/Blob.cpp | 6 +++--- Userland/Libraries/LibWeb/FileAPI/Blob.h | 3 +-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/Userland/Libraries/LibWeb/FileAPI/Blob.cpp b/Userland/Libraries/LibWeb/FileAPI/Blob.cpp index cf29064b41..1fc9d67b7d 100644 --- a/Userland/Libraries/LibWeb/FileAPI/Blob.cpp +++ b/Userland/Libraries/LibWeb/FileAPI/Blob.cpp @@ -12,7 +12,7 @@ namespace Web::FileAPI { -Blob::Blob(ByteBuffer const& byte_buffer, String const& type) +Blob::Blob(ByteBuffer byte_buffer, String type) : m_byte_buffer(move(byte_buffer)) , m_type(move(type)) { @@ -41,7 +41,7 @@ DOM::ExceptionOr> Blob::create(Optional> co } // 4. Return a Blob object referring to bytes as its associated byte sequence, with its size set to the length of bytes, and its type set to the value of t from the substeps above. - return adopt_ref(*new Blob(byte_buffer, type)); + return adopt_ref(*new Blob(move(byte_buffer), move(type))); } DOM::ExceptionOr> Blob::create_with_global_object(Bindings::WindowObject&, Optional> const& blob_parts, Optional const& options) @@ -149,7 +149,7 @@ DOM::ExceptionOr> Blob::slice(Optional start, Optional< auto byte_buffer_or_error = m_byte_buffer.slice(relative_start, span); if (byte_buffer_or_error.is_error()) return DOM::UnknownError::create("Out of memory."sv); - return adopt_ref(*new Blob(byte_buffer_or_error.release_value(), relative_content_type)); + return adopt_ref(*new Blob(byte_buffer_or_error.release_value(), move(relative_content_type))); } // https://w3c.github.io/FileAPI/#dom-blob-text diff --git a/Userland/Libraries/LibWeb/FileAPI/Blob.h b/Userland/Libraries/LibWeb/FileAPI/Blob.h index 8930642ebc..e47176b08f 100644 --- a/Userland/Libraries/LibWeb/FileAPI/Blob.h +++ b/Userland/Libraries/LibWeb/FileAPI/Blob.h @@ -33,8 +33,7 @@ class Blob public: using WrapperType = Bindings::BlobWrapper; - - Blob(ByteBuffer const& byte_buffer, String const& type); + Blob(ByteBuffer byte_buffer, String type); static DOM::ExceptionOr> create(Optional> const& blob_parts = {}, Optional const& options = {}); static DOM::ExceptionOr> create_with_global_object(Bindings::WindowObject&, Optional> const& blob_parts = {}, Optional const& options = {});