From f78fa82ae888021dbb523b1ce2547fa29208873d Mon Sep 17 00:00:00 2001 From: Andrea Blankenstijn Date: Thu, 12 Aug 2021 23:27:09 +0200 Subject: [PATCH] better smart ptr owner semantic --- inc/basic_widgets/core/draw.hpp | 2 +- inc/basic_widgets/w/base/widget.hpp | 2 +- inc/basic_widgets/w/feat/font_handler.hpp | 2 +- src/w/base/layout.cpp | 4 ++-- src/w/base/widget.cpp | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/inc/basic_widgets/core/draw.hpp b/inc/basic_widgets/core/draw.hpp index 6ca69e8..6a3aaa9 100644 --- a/inc/basic_widgets/core/draw.hpp +++ b/inc/basic_widgets/core/draw.hpp @@ -16,7 +16,7 @@ namespace bwidgets [[nodiscard]] auto aa(const Color&, int, float) noexcept -> Color; [[nodiscard]] auto filled_circle(const Color&, int resolution, - std::shared_ptr, int aa_pixels = 3) + Renderer*, int aa_pixels = 3) -> std::shared_ptr; void set_pixels_color( Texture*, diff --git a/inc/basic_widgets/w/base/widget.hpp b/inc/basic_widgets/w/base/widget.hpp index 0384bf5..8b5cbf0 100644 --- a/inc/basic_widgets/w/base/widget.hpp +++ b/inc/basic_widgets/w/base/widget.hpp @@ -34,7 +34,7 @@ namespace bwidgets [[nodiscard]] virtual auto size() const noexcept -> Size = 0; virtual auto render() -> Widget* final; - virtual auto renderer(const std::shared_ptr&) -> Widget* final; + virtual auto renderer(std::shared_ptr) -> Widget* final; virtual auto viewport(const SDL_Rect&) -> Widget* final; [[nodiscard]] virtual auto viewport() const -> const SDL_Rect& final; }; diff --git a/inc/basic_widgets/w/feat/font_handler.hpp b/inc/basic_widgets/w/feat/font_handler.hpp index 29277f4..b55240d 100644 --- a/inc/basic_widgets/w/feat/font_handler.hpp +++ b/inc/basic_widgets/w/feat/font_handler.hpp @@ -25,7 +25,7 @@ namespace bwidgets virtual ~FontHandler() noexcept = default; - virtual inline auto font(const std::shared_ptr& f) -> FontHandler* final + virtual inline auto font(std::shared_ptr f) -> FontHandler* final { if (f != nullptr && (f != _font || f->family_name != _font->family_name diff --git a/src/w/base/layout.cpp b/src/w/base/layout.cpp index 017a11d..a04e631 100644 --- a/src/w/base/layout.cpp +++ b/src/w/base/layout.cpp @@ -4,10 +4,10 @@ using namespace bwidgets; const Size Layout::default_margins {8, 8}; -auto Layout::add_widget(const std::shared_ptr& widget_ptr) -> Layout* +auto Layout::add_widget(std::unique_ptr widget_ptr) -> Layout* { widget_ptr->renderer(_renderer); - _widgets.emplace_back(widget_ptr); + _widgets.emplace_back(std::move(widget_ptr)); _update_layout(_viewport); return this; } diff --git a/src/w/base/widget.cpp b/src/w/base/widget.cpp index 0479bb6..06e0f5e 100644 --- a/src/w/base/widget.cpp +++ b/src/w/base/widget.cpp @@ -55,7 +55,7 @@ auto Widget::render() -> Widget* return this; } -auto Widget::renderer(const std::shared_ptr& r) -> Widget* +auto Widget::renderer(std::shared_ptr r) -> Widget* { if (r != _renderer) { _handle_renderer_change(r);