From c3abbbe8eb28d1e2cee5b58b19e1a30710b38853 Mon Sep 17 00:00:00 2001 From: Benjamin Bannier Date: Tue, 30 Jul 2024 10:01:22 +0200 Subject: [PATCH] Remove a few value copies. --- hilti/toolchain/include/ast/ast-context.h | 3 +-- hilti/toolchain/include/ast/declarations/module-uid.h | 9 ++++----- hilti/toolchain/src/ast/ast-context.cc | 4 ++-- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/hilti/toolchain/include/ast/ast-context.h b/hilti/toolchain/include/ast/ast-context.h index 1dd85dfbd..e1ceb2683 100644 --- a/hilti/toolchain/include/ast/ast-context.h +++ b/hilti/toolchain/include/ast/ast-context.h @@ -168,8 +168,7 @@ class ASTContext : public std::enable_shared_from_this { std::vector search_dirs); /** Adds a new, empty module to the AST. */ - declaration::Module* newModule(Builder* builder, const ID& id, - const hilti::rt::filesystem::path& process_extension); + declaration::Module* newModule(Builder* builder, ID id, const hilti::rt::filesystem::path& process_extension); /** * Retrieves a module node from the AST given its UID. Returns null if no diff --git a/hilti/toolchain/include/ast/declarations/module-uid.h b/hilti/toolchain/include/ast/declarations/module-uid.h index ad825df8a..981a1674a 100644 --- a/hilti/toolchain/include/ast/declarations/module-uid.h +++ b/hilti/toolchain/include/ast/declarations/module-uid.h @@ -55,12 +55,11 @@ struct UID { * @param parse_extension language extension determining how to *parse* this module * @param process_extension language extension determining how to process this module *after* parsing **/ - UID(const ID& id, const hilti::rt::filesystem::path& parse_extension, - const hilti::rt::filesystem::path& process_extension) - : id(id), + UID(ID id, hilti::rt::filesystem::path parse_extension, hilti::rt::filesystem::path process_extension) + : id(std::move(id)), unique(_makeUnique(this->id)), - parse_extension(parse_extension), - process_extension(process_extension), + parse_extension(std::move(parse_extension)), + process_extension(std::move(process_extension)), in_memory(true) { assert(this->id && ! parse_extension.empty() && ! process_extension.empty()); // just make up a path diff --git a/hilti/toolchain/src/ast/ast-context.cc b/hilti/toolchain/src/ast/ast-context.cc index 4045ad89f..9b8afefe2 100644 --- a/hilti/toolchain/src/ast/ast-context.cc +++ b/hilti/toolchain/src/ast/ast-context.cc @@ -128,9 +128,9 @@ Result ASTContext::importModule( return uid; } -declaration::Module* ASTContext::newModule(Builder* builder, const ID& id, +declaration::Module* ASTContext::newModule(Builder* builder, ID id, const hilti::rt::filesystem::path& process_extension) { - auto uid = declaration::module::UID(id, process_extension, process_extension); + auto uid = declaration::module::UID(std::move(id), process_extension, process_extension); auto m = builder->declarationModule(uid); _addModuleToAST(m); return module(uid);