From 0272777d134cbcbb5c6eb2a084ad69572b417647 Mon Sep 17 00:00:00 2001 From: frutiemax Date: Mon, 13 Jul 2020 13:30:14 -0400 Subject: [PATCH 1/2] Close #12223: Assert that Formatter::Add() only receives desired types --- src/openrct2/localisation/Localisation.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/openrct2/localisation/Localisation.h b/src/openrct2/localisation/Localisation.h index e5778bbb75..de210126e0 100644 --- a/src/openrct2/localisation/Localisation.h +++ b/src/openrct2/localisation/Localisation.h @@ -131,6 +131,23 @@ public: { static_assert(sizeof(TSpecified) <= sizeof(uintptr_t), "Type too large"); static_assert(sizeof(TDeduced) <= sizeof(uintptr_t), "Type too large"); + + // clang-format off + static_assert( + std::is_same_v || + std::is_same_v || + std::is_same_v || + std::is_same_v || + std::is_same_v || + std::is_same_v || + std::is_same_v || + std::is_same_v || + std::is_same_v || + std::is_same_v || + std::is_same_v + ); + // clang-format on + uintptr_t convertedValue; if constexpr (std::is_integral_v) { From 5f4e1ba344c3d7039e9f17f28796499f58fb68c6 Mon Sep 17 00:00:00 2001 From: frutiemax Date: Mon, 13 Jul 2020 17:40:04 -0400 Subject: [PATCH 2/2] Forbid usage of uint8_t* in formatter::Add --- src/openrct2-ui/windows/TitleEditor.cpp | 2 +- src/openrct2/localisation/Localisation.h | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/openrct2-ui/windows/TitleEditor.cpp b/src/openrct2-ui/windows/TitleEditor.cpp index 83eea6538b..168d6c5cd5 100644 --- a/src/openrct2-ui/windows/TitleEditor.cpp +++ b/src/openrct2-ui/windows/TitleEditor.cpp @@ -996,7 +996,7 @@ static void window_title_editor_scrollpaint_commands(rct_window* w, rct_drawpixe } else { - ft.Add(command->SpriteName); + ft.Add(command->SpriteName); } break; case TITLE_SCRIPT_WAIT: diff --git a/src/openrct2/localisation/Localisation.h b/src/openrct2/localisation/Localisation.h index de210126e0..137d5fe096 100644 --- a/src/openrct2/localisation/Localisation.h +++ b/src/openrct2/localisation/Localisation.h @@ -140,7 +140,6 @@ public: std::is_same_v || std::is_same_v || std::is_same_v || - std::is_same_v || std::is_same_v || std::is_same_v || std::is_same_v ||