From 427332a7ca35853ea2ce3a1f457657add3879ebc Mon Sep 17 00:00:00 2001 From: Tom Englund Date: Fri, 26 Sep 2025 23:25:52 +0200 Subject: [PATCH] memory: use initializer list in constructors for trivial types this is optimized away, non trivial it default constructs and then assigns it upon construction, minor waste. so lets use initializer list for these custom types. --- include/hyprutils/memory/SharedPtr.hpp | 12 ++++-------- include/hyprutils/memory/UniquePtr.hpp | 3 +-- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/include/hyprutils/memory/SharedPtr.hpp b/include/hyprutils/memory/SharedPtr.hpp index 3b1b3ca..23c08ba 100644 --- a/include/hyprutils/memory/SharedPtr.hpp +++ b/include/hyprutils/memory/SharedPtr.hpp @@ -28,20 +28,17 @@ namespace Hyprutils { /* creates a new shared pointer managing a resource avoid calling. Could duplicate ownership. Prefer makeShared */ - explicit CSharedPointer(T* object) noexcept { - impl_ = new Impl_::impl(object); + explicit CSharedPointer(T* object) noexcept : impl_(new Impl_::impl(object)) { increment(); } /* creates a shared pointer from a reference */ template > - CSharedPointer(const CSharedPointer& ref) noexcept { - impl_ = ref.impl_; + CSharedPointer(const CSharedPointer& ref) noexcept : impl_(ref.impl_) { increment(); } - CSharedPointer(const CSharedPointer& ref) noexcept { - impl_ = ref.impl_; + CSharedPointer(const CSharedPointer& ref) noexcept : impl_(ref.impl_) { increment(); } @@ -55,8 +52,7 @@ namespace Hyprutils { } /* allows weakPointer to create from an impl */ - CSharedPointer(Impl_::impl_base* implementation) noexcept { - impl_ = implementation; + CSharedPointer(Impl_::impl_base* implementation) noexcept : impl_(implementation) { increment(); } diff --git a/include/hyprutils/memory/UniquePtr.hpp b/include/hyprutils/memory/UniquePtr.hpp index 4d95934..4f6d71c 100644 --- a/include/hyprutils/memory/UniquePtr.hpp +++ b/include/hyprutils/memory/UniquePtr.hpp @@ -22,8 +22,7 @@ namespace Hyprutils { /* creates a new unique pointer managing a resource avoid calling. Could duplicate ownership. Prefer makeUnique */ - explicit CUniquePointer(T* object) noexcept { - impl_ = new Impl_::impl(object, false); + explicit CUniquePointer(T* object) noexcept : impl_(new Impl_::impl(object, false)) { increment(); }