rewrite template to discard pointers

This commit is contained in:
Andrea Blankenstijn 2021-07-24 08:18:49 +02:00
parent cc0bed2287
commit ef294d67fc
2 changed files with 14 additions and 14 deletions

View file

@ -9,12 +9,12 @@ namespace bwidgets::core
OpaqueStruct(T* ptr=nullptr) : c_pod(ptr) {}
virtual ~OpaqueStruct<T>() noexcept = default;
static inline void discard(T*& t) {
delete t;
t = nullptr;
}
};
template<typename ... Ts> void discard(Ts*& ... ptrs) {
((delete ptrs), ...);
((ptrs = nullptr), ...);
}
}
#endif

View file

@ -8,27 +8,27 @@ using namespace bwidgets;
widget::Caption::~Caption() noexcept
{
core::OpaqueStruct<core::Texture>::discard(_text_texture);
core::discard(_text_texture);
}
widget::Caption* widget::Caption::color_bg(const SDL_Color& c)
{
_color_bg = c;
core::OpaqueStruct<core::Texture>::discard(_text_texture);
core::discard(_text_texture);
return this;
}
widget::Caption* widget::Caption::color_fg(const SDL_Color& c)
{
_color_fg = c;
core::OpaqueStruct<core::Texture>::discard(_text_texture);
core::discard(_text_texture);
return this;
}
widget::Caption* widget::Caption::render_mode(core::Font::RenderMode m) noexcept
{
_render_mode = m;
core::OpaqueStruct<core::Texture>::discard(_text_texture);
core::discard(_text_texture);
return this;
}
@ -50,13 +50,13 @@ const std::string& widget::Caption::text() const noexcept
widget::Caption* widget::Caption::text(const std::string& t)
{
_text = t;
core::OpaqueStruct<core::Texture>::discard(_text_texture);
core::discard(_text_texture);
return this;
}
void widget::Caption::_handle_font_change(core::Font*)
{
core::OpaqueStruct<core::Texture>::discard(_text_texture);
core::discard(_text_texture);
}
static inline bool operator!=(const SDL_Color& a, const SDL_Color& b)
@ -69,7 +69,7 @@ void widget::Caption::_handle_font_color_change(const SDL_Color& fg, const SDL_C
if (fg != _font_color_fg || (bg != _font_color_bg &&
_font_render_mode == core::Font::RenderMode::SHADED))
{
core::OpaqueStruct<core::Texture>::discard(_text_texture);
core::discard(_text_texture);
}
}
@ -83,7 +83,7 @@ void widget::Caption::_handle_geometry_change(const SDL_Rect& vp) noexcept
void widget::Caption::_handle_renderer_change(core::Renderer*)
{
core::OpaqueStruct<core::Texture>::discard(_text_texture);
core::discard(_text_texture);
}
void widget::Caption::_handle_rendering()
@ -122,7 +122,7 @@ void widget::Caption::_handle_rendering()
void widget::Caption::_handle_texture_update()
{
SDL_assert_release(_font);
core::OpaqueStruct<core::Texture>::discard(_text_texture);
core::discard(_text_texture);
SDL_Surface* s;
switch (_render_mode)
{