From be4159f9ac6adf33d0ea5b34b451584da77efb14 Mon Sep 17 00:00:00 2001 From: Hielke Morsink Date: Fri, 20 Aug 2021 23:47:16 +0200 Subject: [PATCH] Create std::unique_ptrinstead of raw pointer --- src/openrct2/localisation/LanguagePack.cpp | 13 +++++++------ src/openrct2/localisation/LanguagePack.h | 5 +++-- src/openrct2/localisation/LocalisationService.cpp | 5 ++--- test/tests/LanguagePackTest.cpp | 12 ++++-------- 4 files changed, 16 insertions(+), 19 deletions(-) diff --git a/src/openrct2/localisation/LanguagePack.cpp b/src/openrct2/localisation/LanguagePack.cpp index b17e29017d..4f75eab211 100644 --- a/src/openrct2/localisation/LanguagePack.cpp +++ b/src/openrct2/localisation/LanguagePack.cpp @@ -20,6 +20,7 @@ #include "Localisation.h" #include +#include #include #include @@ -62,7 +63,7 @@ private: ScenarioOverride* _currentScenarioOverride = nullptr; public: - static LanguagePack* FromFile(uint16_t id, const utf8* path) + static std::unique_ptr FromFile(uint16_t id, const utf8* path) { Guard::ArgumentNotNull(path); @@ -90,15 +91,15 @@ public: } // Parse the memory as text - LanguagePack* result = FromText(id, fileData); + auto result = FromText(id, fileData); Memory::Free(fileData); return result; } - static LanguagePack* FromText(uint16_t id, const utf8* text) + static std::unique_ptr FromText(uint16_t id, const utf8* text) { - return new LanguagePack(id, text); + return std::make_unique(id, text); } LanguagePack(uint16_t id, const utf8* text) @@ -579,13 +580,13 @@ private: namespace LanguagePackFactory { - ILanguagePack* FromFile(uint16_t id, const utf8* path) + std::unique_ptr FromFile(uint16_t id, const utf8* path) { auto languagePack = LanguagePack::FromFile(id, path); return languagePack; } - ILanguagePack* FromText(uint16_t id, const utf8* text) + std::unique_ptr FromText(uint16_t id, const utf8* text) { auto languagePack = LanguagePack::FromText(id, text); return languagePack; diff --git a/src/openrct2/localisation/LanguagePack.h b/src/openrct2/localisation/LanguagePack.h index e6301b9135..ef3a17bbbf 100644 --- a/src/openrct2/localisation/LanguagePack.h +++ b/src/openrct2/localisation/LanguagePack.h @@ -11,6 +11,7 @@ #include "../common.h" +#include #include #include @@ -30,6 +31,6 @@ struct ILanguagePack namespace LanguagePackFactory { - ILanguagePack* FromFile(uint16_t id, const utf8* path); - ILanguagePack* FromText(uint16_t id, const utf8* text); + std::unique_ptr FromFile(uint16_t id, const utf8* path); + std::unique_ptr FromText(uint16_t id, const utf8* text); } // namespace LanguagePackFactory diff --git a/src/openrct2/localisation/LocalisationService.cpp b/src/openrct2/localisation/LocalisationService.cpp index 15a1a23db6..965e177233 100644 --- a/src/openrct2/localisation/LocalisationService.cpp +++ b/src/openrct2/localisation/LocalisationService.cpp @@ -86,12 +86,11 @@ void LocalisationService::OpenLanguage(int32_t id) if (id != LANGUAGE_ENGLISH_UK) { filename = GetLanguagePath(LANGUAGE_ENGLISH_UK); - _languageFallback = std::unique_ptr( - LanguagePackFactory::FromFile(LANGUAGE_ENGLISH_UK, filename.c_str())); + _languageFallback = LanguagePackFactory::FromFile(LANGUAGE_ENGLISH_UK, filename.c_str()); } filename = GetLanguagePath(id); - _languageCurrent = std::unique_ptr(LanguagePackFactory::FromFile(id, filename.c_str())); + _languageCurrent = LanguagePackFactory::FromFile(id, filename.c_str()); if (_languageCurrent != nullptr) { _currentLanguage = id; diff --git a/test/tests/LanguagePackTest.cpp b/test/tests/LanguagePackTest.cpp index b6b3a0206f..d3a969e521 100644 --- a/test/tests/LanguagePackTest.cpp +++ b/test/tests/LanguagePackTest.cpp @@ -23,27 +23,25 @@ protected: TEST_F(LanguagePackTest, create_empty) { - ILanguagePack* empty = LanguagePackFactory::FromText(0, ""); + auto empty = LanguagePackFactory::FromText(0, ""); ASSERT_EQ(empty->GetId(), 0); ASSERT_EQ(empty->GetCount(), 0U); - delete empty; } TEST_F(LanguagePackTest, create_mutable_id_1) { - ILanguagePack* lang = LanguagePackFactory::FromText(1, "STR_0000:\n"); + auto lang = LanguagePackFactory::FromText(1, "STR_0000:\n"); ASSERT_EQ(lang->GetId(), 1); ASSERT_EQ(lang->GetCount(), 1U); ASSERT_STREQ(lang->GetString(0), nullptr); lang->SetString(0, "xx"); ASSERT_EQ(lang->GetCount(), 1U); ASSERT_STREQ(lang->GetString(0), "xx"); - delete lang; } TEST_F(LanguagePackTest, language_pack_simple) { - ILanguagePack* lang = LanguagePackFactory::FromText(0, LanguageEnGB); + auto lang = LanguagePackFactory::FromText(0, LanguageEnGB); ASSERT_EQ(lang->GetId(), 0); ASSERT_EQ(lang->GetCount(), 4U); ASSERT_STREQ(lang->GetString(2), "Spiral Roller Coaster"); @@ -55,12 +53,11 @@ TEST_F(LanguagePackTest, language_pack_simple) ASSERT_EQ(lang->GetString(1000), nullptr); ASSERT_EQ(lang->GetScenarioOverrideStringId("No such park", 0), STR_NONE); ASSERT_EQ(lang->GetObjectOverrideStringId(" ", 0), STR_NONE); - delete lang; } TEST_F(LanguagePackTest, language_pack_multibyte) { - ILanguagePack* lang = LanguagePackFactory::FromText(0, (const utf8*)LanguageZhTW); + auto lang = LanguagePackFactory::FromText(0, (const utf8*)LanguageZhTW); ASSERT_EQ(lang->GetId(), 0); ASSERT_EQ(lang->GetCount(), 4U); ASSERT_STREQ(lang->GetString(2), u8"懸吊式雲霄飛車"); @@ -70,7 +67,6 @@ TEST_F(LanguagePackTest, language_pack_multibyte) ASSERT_STREQ(lang->GetString(0x7002), u8"在隱藏於森林深處的清空範圍中, 建造一個很受歡迎的樂園"); ASSERT_EQ(lang->GetObjectOverrideStringId("CONDORRD", 0), 0x6000); ASSERT_STREQ(lang->GetString(0x6000), u8"神鷹暢遊"); - delete lang; } const utf8* LanguagePackTest::LanguageEnGB = "# STR_XXXX part is read and XXXX becomes the string id number.\n"