From c0d6afdc670d42bd89ff47718109625cf7c7231c Mon Sep 17 00:00:00 2001 From: Hendiadyoin1 Date: Wed, 22 Dec 2021 16:32:18 +0100 Subject: [PATCH] UserspaceEmulator: Avoid copies of non trivial types on invocations These include AK::String and X86::Instruction --- Userland/DevTools/UserspaceEmulator/Emulator.cpp | 6 +++--- Userland/DevTools/UserspaceEmulator/Emulator.h | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Userland/DevTools/UserspaceEmulator/Emulator.cpp b/Userland/DevTools/UserspaceEmulator/Emulator.cpp index b38d26af97..829dca0a26 100644 --- a/Userland/DevTools/UserspaceEmulator/Emulator.cpp +++ b/Userland/DevTools/UserspaceEmulator/Emulator.cpp @@ -70,7 +70,7 @@ Emulator::Emulator(String const& executable_path, Vector const& argu setup_signal_trampoline(); } -Vector Emulator::generate_auxiliary_vector(FlatPtr load_base, FlatPtr entry_eip, String executable_path, int executable_fd) const +Vector Emulator::generate_auxiliary_vector(FlatPtr load_base, FlatPtr entry_eip, String const& executable_path, int executable_fd) const { // FIXME: This is not fully compatible with the auxiliary vector the kernel generates, this is just the bare // minimum to get the loader going. @@ -486,7 +486,7 @@ void Emulator::emit_profile_sample(AK::OutputStream& output) output.write_or_error(builder.string_view().bytes()); } -void Emulator::emit_profile_event(AK::OutputStream& output, StringView event_name, String contents) +void Emulator::emit_profile_event(AK::OutputStream& output, StringView event_name, String const& contents) { StringBuilder builder; timeval tv {}; @@ -496,7 +496,7 @@ void Emulator::emit_profile_event(AK::OutputStream& output, StringView event_nam output.write_or_error(builder.string_view().bytes()); } -String Emulator::create_instruction_line(FlatPtr address, X86::Instruction insn) +String Emulator::create_instruction_line(FlatPtr address, X86::Instruction const& insn) { auto symbol = symbol_at(address); if (!symbol.has_value() || !symbol->source_position.has_value()) diff --git a/Userland/DevTools/UserspaceEmulator/Emulator.h b/Userland/DevTools/UserspaceEmulator/Emulator.h index a39e13b888..90c4d8644f 100644 --- a/Userland/DevTools/UserspaceEmulator/Emulator.h +++ b/Userland/DevTools/UserspaceEmulator/Emulator.h @@ -122,12 +122,12 @@ private: OwnPtr m_malloc_tracer; void setup_stack(Vector); - Vector generate_auxiliary_vector(FlatPtr load_base, FlatPtr entry_eip, String executable_path, int executable_fd) const; + Vector generate_auxiliary_vector(FlatPtr load_base, FlatPtr entry_eip, String const& executable_path, int executable_fd) const; void register_signal_handlers(); void setup_signal_trampoline(); void emit_profile_sample(AK::OutputStream&); - void emit_profile_event(AK::OutputStream&, StringView event_name, String contents); + void emit_profile_event(AK::OutputStream&, StringView event_name, String const& contents); int virt$accept4(FlatPtr); int virt$access(FlatPtr, size_t, int); @@ -243,7 +243,7 @@ private: MmapRegion const* load_library_from_address(FlatPtr address); MmapRegion const* first_region_for_object(StringView name); String create_backtrace_line(FlatPtr address); - String create_instruction_line(FlatPtr address, X86::Instruction insn); + String create_instruction_line(FlatPtr address, X86::Instruction const& insn); bool m_shutdown { false }; int m_exit_status { 0 };