summaryrefslogtreecommitdiff
path: root/src/hook_manager.cc
diff options
context:
space:
mode:
authorMaxime Coste <mawww@kakoune.org>2025-07-08 11:43:17 +1000
committerMaxime Coste <mawww@kakoune.org>2025-07-08 12:07:33 +1000
commitce1d512a0c1922ab5f43f28e7bae573508c98601 (patch)
tree7af8effd6b00c304cda1c87f657a0014fcdae2ae /src/hook_manager.cc
parentfea08fc18d268ace4f843ec2b57cc33e36562098 (diff)
Replace std::unique_ptr with a custom implementation
<memory> is a costly header we can avoid by just implementing UniquePtr ourselves, which is a pretty straightforward in modern C++, this saves around 10% of the compilation time here.
Diffstat (limited to 'src/hook_manager.cc')
-rw-r--r--src/hook_manager.cc6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/hook_manager.cc b/src/hook_manager.cc
index ee461a83..31634e9d 100644
--- a/src/hook_manager.cc
+++ b/src/hook_manager.cc
@@ -56,7 +56,7 @@ HookManager::~HookManager() = default;
void HookManager::add_hook(Hook hook, String group, HookFlags flags, Regex filter, String commands, Context& context)
{
- std::unique_ptr<HookData> hook_data{new HookData{std::move(group), flags, std::move(filter), std::move(commands)}};
+ UniquePtr<HookData> hook_data{new HookData{std::move(group), flags, std::move(filter), std::move(commands)}};
if (hook == Hook::ModuleLoaded)
{
const bool only_always = context.hooks_disabled();
@@ -80,7 +80,7 @@ void HookManager::remove_hooks(const Regex& regex)
{
for (auto& list : m_hooks)
{
- list.erase(remove_if(list, [this, &regex](std::unique_ptr<HookData>& h) {
+ list.erase(remove_if(list, [this, &regex](UniquePtr<HookData>& h) {
if (not regex_match(h->group.begin(), h->group.end(), regex))
return false;
m_hooks_trash.push_back(std::move(h));
@@ -94,7 +94,7 @@ CandidateList HookManager::complete_hook_group(StringView prefix, ByteCount pos_
CandidateList res;
for (auto& list : m_hooks)
{
- auto container = list | transform([](const std::unique_ptr<HookData>& h) -> const String& { return h->group; });
+ auto container = list | transform([](const UniquePtr<HookData>& h) -> const String& { return h->group; });
for (auto& c : complete(prefix, pos_in_token, container))
{
if (!contains(res, c))