From 4d34095b0af2d26bbbde8b06ab0142fd4301ed28 Mon Sep 17 00:00:00 2001 From: Luke Wilde Date: Fri, 8 Aug 2025 14:27:03 +0100 Subject: [PATCH] LibWeb/Wasm: Return Hash{Map,Table} caches by const reference When loading Infiltrating the Airship in Ruffle, the copying of these hash maps/tables were at least 10% of the runtime. This disappears when returning them by const reference. --- Libraries/LibWeb/WebAssembly/WebAssembly.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Libraries/LibWeb/WebAssembly/WebAssembly.h b/Libraries/LibWeb/WebAssembly/WebAssembly.h index 27d776162b7..c54e439aedd 100644 --- a/Libraries/LibWeb/WebAssembly/WebAssembly.h +++ b/Libraries/LibWeb/WebAssembly/WebAssembly.h @@ -60,11 +60,11 @@ public: Optional get_extern_value(Wasm::ExternAddress address) { return m_extern_values.get(address); } Optional> get_global_instance(Wasm::GlobalAddress address) { return m_global_instances.get(address); } - HashMap> function_instances() const { return m_function_instances; } - HashMap extern_values() const { return m_extern_values; } - HashMap inverse_extern_values() const { return m_inverse_extern_values; } - HashMap> global_instances() const { return m_global_instances; } - HashTable> imported_objects() const { return m_imported_objects; } + HashMap> const& function_instances() const { return m_function_instances; } + HashMap const& extern_values() const { return m_extern_values; } + HashMap const& inverse_extern_values() const { return m_inverse_extern_values; } + HashMap> const& global_instances() const { return m_global_instances; } + HashTable> const& imported_objects() const { return m_imported_objects; } Wasm::AbstractMachine& abstract_machine() { return m_abstract_machine; } private: