From 7b31f266117ac90883037f80fb33f77d87980a79 Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Thu, 10 Apr 2025 07:37:28 +0100 Subject: [PATCH] Codechange: Pass ContentInfo by reference. Many functions take a ContentInfo pointer, but do not check for nullptr. Pass by reference instead to assure it is present. --- src/ai/ai.hpp | 4 +- src/ai/ai_core.cpp | 4 +- src/base_media_base.h | 4 +- src/base_media_func.h | 8 ++-- src/bootstrap_gui.cpp | 10 ++--- src/console_cmds.cpp | 8 ++-- src/fios.cpp | 8 ++-- src/fios.h | 2 +- src/game/game.hpp | 4 +- src/game/game_core.cpp | 4 +- src/network/core/tcp_content.cpp | 16 +++---- src/network/network_content.cpp | 66 ++++++++++++++--------------- src/network/network_content.h | 14 +++--- src/network/network_content_gui.cpp | 20 ++++----- src/network/network_content_gui.h | 2 +- src/script/script_scanner.cpp | 10 ++--- src/script/script_scanner.hpp | 4 +- 17 files changed, 94 insertions(+), 94 deletions(-) diff --git a/src/ai/ai.hpp b/src/ai/ai.hpp index 286c78f0e9..7a2d9fcb3d 100644 --- a/src/ai/ai.hpp +++ b/src/ai/ai.hpp @@ -135,8 +135,8 @@ public: static AIScannerLibrary *GetScannerLibrary(); /** Wrapper function for AIScanner::HasAI */ - static bool HasAI(const struct ContentInfo *ci, bool md5sum); - static bool HasAILibrary(const ContentInfo *ci, bool md5sum); + static bool HasAI(const ContentInfo &ci, bool md5sum); + static bool HasAILibrary(const ContentInfo &ci, bool md5sum); private: static uint frame_counter; ///< Tick counter for the AI code static std::unique_ptr scanner_info; ///< ScriptScanner instance that is used to find AIs diff --git a/src/ai/ai_core.cpp b/src/ai/ai_core.cpp index f6fc28c68b..0283b38f66 100644 --- a/src/ai/ai_core.cpp +++ b/src/ai/ai_core.cpp @@ -334,12 +334,12 @@ * @param md5sum whether to check the MD5 checksum * @return true iff we have an AI (library) matching. */ -/* static */ bool AI::HasAI(const ContentInfo *ci, bool md5sum) +/* static */ bool AI::HasAI(const ContentInfo &ci, bool md5sum) { return AI::scanner_info->HasScript(ci, md5sum); } -/* static */ bool AI::HasAILibrary(const ContentInfo *ci, bool md5sum) +/* static */ bool AI::HasAILibrary(const ContentInfo &ci, bool md5sum) { return AI::scanner_library->HasScript(ci, md5sum); } diff --git a/src/base_media_base.h b/src/base_media_base.h index cd77cef4df..2c645ccfae 100644 --- a/src/base_media_base.h +++ b/src/base_media_base.h @@ -211,7 +211,7 @@ public: * @param md5sum whether to check the MD5 checksum * @return true iff we have an set matching. */ - static bool HasSet(const ContentInfo *ci, bool md5sum); + static bool HasSet(const ContentInfo &ci, bool md5sum); }; /** @@ -222,6 +222,6 @@ public: * @return The filename of the first file of the base set, or \c nullptr if there is no match. */ template -const char *TryGetBaseSetFile(const ContentInfo *ci, bool md5sum, const Tbase_set *s); +const char *TryGetBaseSetFile(const ContentInfo &ci, bool md5sum, const Tbase_set *s); #endif /* BASE_MEDIA_BASE_H */ diff --git a/src/base_media_func.h b/src/base_media_func.h index 4e32a12e94..2e0d644ff9 100644 --- a/src/base_media_func.h +++ b/src/base_media_func.h @@ -319,25 +319,25 @@ template #include "network/core/tcp_content_type.h" -template const char *TryGetBaseSetFile(const ContentInfo *ci, bool md5sum, const Tbase_set *s) +template const char *TryGetBaseSetFile(const ContentInfo &ci, bool md5sum, const Tbase_set *s) { for (; s != nullptr; s = s->next) { if (s->GetNumMissing() != 0) continue; - if (s->shortname != ci->unique_id) continue; + if (s->shortname != ci.unique_id) continue; if (!md5sum) return s->files[0].filename.c_str(); MD5Hash md5; for (const auto &file : s->files) { md5 ^= file.hash; } - if (md5 == ci->md5sum) return s->files[0].filename.c_str(); + if (md5 == ci.md5sum) return s->files[0].filename.c_str(); } return nullptr; } template -/* static */ bool BaseMedia::HasSet(const ContentInfo *ci, bool md5sum) +/* static */ bool BaseMedia::HasSet(const ContentInfo &ci, bool md5sum) { return (TryGetBaseSetFile(ci, md5sum, BaseMedia::available_sets) != nullptr) || (TryGetBaseSetFile(ci, md5sum, BaseMedia::duplicate_sets) != nullptr); diff --git a/src/bootstrap_gui.cpp b/src/bootstrap_gui.cpp index b5d03fb506..44bce54ca8 100644 --- a/src/bootstrap_gui.cpp +++ b/src/bootstrap_gui.cpp @@ -273,10 +273,10 @@ public: _network_content_client.RequestContentList(CONTENT_TYPE_BASE_GRAPHICS); } - void OnReceiveContentInfo(const ContentInfo *ci) override + void OnReceiveContentInfo(const ContentInfo &ci) override { /* And once the meta data is received, start downloading it. */ - _network_content_client.Select(ci->id); + _network_content_client.Select(ci.id); new BootstrapContentDownloadStatusWindow(); this->Close(); } @@ -320,19 +320,19 @@ public: _network_content_client.RequestContentList(CONTENT_TYPE_BASE_GRAPHICS); } - void OnReceiveContentInfo(const ContentInfo *ci) override + void OnReceiveContentInfo(const ContentInfo &ci) override { if (this->downloading) return; /* And once the metadata is received, start downloading it. */ - _network_content_client.Select(ci->id); + _network_content_client.Select(ci.id); _network_content_client.DownloadSelectedContent(this->total_files, this->total_bytes); this->downloading = true; EM_ASM({ if (window["openttd_bootstrap"]) openttd_bootstrap($0, $1); }, this->downloaded_bytes, this->total_bytes); } - void OnDownloadProgress(const ContentInfo *, int bytes) override + void OnDownloadProgress(const ContentInfo &, int bytes) override { /* A negative value means we are resetting; for example, when retrying or using a fallback. */ if (bytes < 0) { diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp index 93151f364b..327cb7eb54 100644 --- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -2128,14 +2128,14 @@ struct ConsoleContentCallback : public ContentCallback { * Outputs content state information to console * @param ci the content info */ -static void OutputContentState(const ContentInfo *const ci) +static void OutputContentState(const ContentInfo &ci) { static const char * const types[] = { "Base graphics", "NewGRF", "AI", "AI library", "Scenario", "Heightmap", "Base sound", "Base music", "Game script", "GS library" }; static_assert(lengthof(types) == CONTENT_TYPE_END - CONTENT_TYPE_BEGIN); static const char * const states[] = { "Not selected", "Selected", "Dep Selected", "Installed", "Unknown" }; static const TextColour state_to_colour[] = { CC_COMMAND, CC_INFO, CC_INFO, CC_WHITE, CC_ERROR }; - IConsolePrint(state_to_colour[ci->state], "{}, {}, {}, {}, {:08X}, {}", ci->id, types[ci->type - 1], states[ci->state], ci->name, ci->unique_id, FormatArrayAsHex(ci->md5sum)); + IConsolePrint(state_to_colour[ci.state], "{}, {}, {}, {}, {:08X}, {}", ci.id, types[ci.type - 1], states[ci.state], ci.name, ci.unique_id, FormatArrayAsHex(ci.md5sum)); } DEF_CONSOLE_CMD(ConContent) @@ -2173,7 +2173,7 @@ DEF_CONSOLE_CMD(ConContent) IConsolePrint(CC_WHITE, "id, type, state, name"); for (ConstContentIterator iter = _network_content_client.Begin(); iter != _network_content_client.End(); iter++) { if ((*iter)->state != ContentInfo::SELECTED && (*iter)->state != ContentInfo::AUTOSELECTED) continue; - OutputContentState(*iter); + OutputContentState(**iter); } } else if (StrEqualsIgnoreCase(argv[2], "all")) { /* The intention of this function was that you could download @@ -2206,7 +2206,7 @@ DEF_CONSOLE_CMD(ConContent) IConsolePrint(CC_WHITE, "id, type, state, name"); for (ConstContentIterator iter = _network_content_client.Begin(); iter != _network_content_client.End(); iter++) { if (argc > 2 && !StrContainsIgnoreCase((*iter)->name, argv[2])) continue; - OutputContentState(*iter); + OutputContentState(**iter); } return true; } diff --git a/src/fios.cpp b/src/fios.cpp index 760ca1e066..9206aa101a 100644 --- a/src/fios.cpp +++ b/src/fios.cpp @@ -680,13 +680,13 @@ static ScenarioScanner _scanner; * @param md5sum Whether to look at the md5sum or the id. * @return The filename of the file, else \c nullptr. */ -const char *FindScenario(const ContentInfo *ci, bool md5sum) +const char *FindScenario(const ContentInfo &ci, bool md5sum) { _scanner.Scan(false); for (ScenarioIdentifier &id : _scanner) { - if (md5sum ? (id.md5sum == ci->md5sum) - : (id.scenid == ci->unique_id)) { + if (md5sum ? (id.md5sum == ci.md5sum) + : (id.scenid == ci.unique_id)) { return id.filename.c_str(); } } @@ -700,7 +700,7 @@ const char *FindScenario(const ContentInfo *ci, bool md5sum) * @param md5sum Whether to look at the md5sum or the id. * @return True iff we've got the scenario. */ -bool HasScenario(const ContentInfo *ci, bool md5sum) +bool HasScenario(const ContentInfo &ci, bool md5sum) { return (FindScenario(ci, md5sum) != nullptr); } diff --git a/src/fios.h b/src/fios.h index e65b97141b..f73915f698 100644 --- a/src/fios.h +++ b/src/fios.h @@ -121,7 +121,7 @@ std::tuple FiosGetScenarioListCallback(SaveLoadOperation std::tuple FiosGetHeightmapListCallback(SaveLoadOperation fop, const std::string &file, const std::string_view ext); void ScanScenarios(); -const char *FindScenario(const ContentInfo *ci, bool md5sum); +const char *FindScenario(const ContentInfo &ci, bool md5sum); /** * A savegame name automatically numbered. diff --git a/src/game/game.hpp b/src/game/game.hpp index d6e8ba65c5..e4931712a3 100644 --- a/src/game/game.hpp +++ b/src/game/game.hpp @@ -101,8 +101,8 @@ public: static void ResetInstance(); /** Wrapper function for GameScanner::HasGame */ - static bool HasGame(const struct ContentInfo *ci, bool md5sum); - static bool HasGameLibrary(const ContentInfo *ci, bool md5sum); + static bool HasGame(const ContentInfo &ci, bool md5sum); + static bool HasGameLibrary(const ContentInfo &ci, bool md5sum); /** Gets the ScriptScanner instance that is used to find Game scripts */ static GameScannerInfo *GetScannerInfo(); /** Gets the ScriptScanner instance that is used to find Game Libraries */ diff --git a/src/game/game_core.cpp b/src/game/game_core.cpp index dbd1b672c8..14ebcd9ab9 100644 --- a/src/game/game_core.cpp +++ b/src/game/game_core.cpp @@ -242,12 +242,12 @@ * @param md5sum whether to check the MD5 checksum * @return true iff we have an Game (library) matching. */ -/* static */ bool Game::HasGame(const ContentInfo *ci, bool md5sum) +/* static */ bool Game::HasGame(const ContentInfo &ci, bool md5sum) { return Game::scanner_info->HasScript(ci, md5sum); } -/* static */ bool Game::HasGameLibrary(const ContentInfo *ci, bool md5sum) +/* static */ bool Game::HasGameLibrary(const ContentInfo &ci, bool md5sum) { return Game::scanner_library->HasScript(ci, md5sum); } diff --git a/src/network/core/tcp_content.cpp b/src/network/core/tcp_content.cpp index c8e24547db..ea55a30542 100644 --- a/src/network/core/tcp_content.cpp +++ b/src/network/core/tcp_content.cpp @@ -63,16 +63,16 @@ std::optional ContentInfo::GetTextfile(TextfileType type) const switch (this->type) { default: NOT_REACHED(); case CONTENT_TYPE_AI: - tmp = AI::GetScannerInfo()->FindMainScript(this, true); + tmp = AI::GetScannerInfo()->FindMainScript(*this, true); break; case CONTENT_TYPE_AI_LIBRARY: - tmp = AI::GetScannerLibrary()->FindMainScript(this, true); + tmp = AI::GetScannerLibrary()->FindMainScript(*this, true); break; case CONTENT_TYPE_GAME: - tmp = Game::GetScannerInfo()->FindMainScript(this, true); + tmp = Game::GetScannerInfo()->FindMainScript(*this, true); break; case CONTENT_TYPE_GAME_LIBRARY: - tmp = Game::GetScannerLibrary()->FindMainScript(this, true); + tmp = Game::GetScannerLibrary()->FindMainScript(*this, true); break; case CONTENT_TYPE_NEWGRF: { const GRFConfig *gc = FindGRFConfig(std::byteswap(this->unique_id), FGCM_EXACT, &this->md5sum); @@ -80,17 +80,17 @@ std::optional ContentInfo::GetTextfile(TextfileType type) const break; } case CONTENT_TYPE_BASE_GRAPHICS: - tmp = TryGetBaseSetFile(this, true, BaseGraphics::GetAvailableSets()); + tmp = TryGetBaseSetFile(*this, true, BaseGraphics::GetAvailableSets()); break; case CONTENT_TYPE_BASE_SOUNDS: - tmp = TryGetBaseSetFile(this, true, BaseSounds::GetAvailableSets()); + tmp = TryGetBaseSetFile(*this, true, BaseSounds::GetAvailableSets()); break; case CONTENT_TYPE_BASE_MUSIC: - tmp = TryGetBaseSetFile(this, true, BaseMusic::GetAvailableSets()); + tmp = TryGetBaseSetFile(*this, true, BaseMusic::GetAvailableSets()); break; case CONTENT_TYPE_SCENARIO: case CONTENT_TYPE_HEIGHTMAP: - tmp = FindScenario(this, true); + tmp = FindScenario(*this, true); break; } if (tmp == nullptr) return std::nullopt; diff --git a/src/network/network_content.cpp b/src/network/network_content.cpp index 3848ffc6ca..eb6bc31db4 100644 --- a/src/network/network_content.cpp +++ b/src/network/network_content.cpp @@ -38,15 +38,15 @@ #include "../safeguards.h" -extern bool HasScenario(const ContentInfo *ci, bool md5sum); +extern bool HasScenario(const ContentInfo &ci, bool md5sum); /** The client we use to connect to the server. */ ClientNetworkContentSocketHandler _network_content_client; /** Wrapper function for the HasProc */ -static bool HasGRFConfig(const ContentInfo *ci, bool md5sum) +static bool HasGRFConfig(const ContentInfo &ci, bool md5sum) { - return FindGRFConfig(std::byteswap(ci->unique_id), md5sum ? FGCM_EXACT : FGCM_ANY, md5sum ? &ci->md5sum : nullptr) != nullptr; + return FindGRFConfig(std::byteswap(ci.unique_id), md5sum ? FGCM_EXACT : FGCM_ANY, md5sum ? &ci.md5sum : nullptr) != nullptr; } /** @@ -56,7 +56,7 @@ static bool HasGRFConfig(const ContentInfo *ci, bool md5sum) * @param md5sum also match the MD5 checksum? * @return true iff it's known */ -using HasContentProc = bool(const ContentInfo *ci, bool md5sum); +using HasContentProc = bool(const ContentInfo &ci, bool md5sum); /** * Get the has-content check function for the given content type. @@ -115,11 +115,11 @@ bool ClientNetworkContentSocketHandler::Receive_SERVER_INFO(Packet &p) HasContentProc *proc = GetHasContentProcforContentType(ci->type); if (proc != nullptr) { - if (proc(ci, true)) { + if (proc(*ci, true)) { ci->state = ContentInfo::ALREADY_HERE; } else { ci->state = ContentInfo::UNSELECTED; - if (proc(ci, false)) ci->upgrade = true; + if (proc(*ci, false)) ci->upgrade = true; } } else { ci->state = ContentInfo::UNSELECTED; @@ -143,7 +143,7 @@ bool ClientNetworkContentSocketHandler::Receive_SERVER_INFO(Packet &p) *ici = *ci; delete ci; - this->OnReceiveContentInfo(ici); + this->OnReceiveContentInfo(*ici); return true; } } @@ -160,10 +160,10 @@ bool ClientNetworkContentSocketHandler::Receive_SERVER_INFO(Packet &p) ConstContentVector parents; this->ReverseLookupTreeDependency(parents, ci); for (const ContentInfo *ici : parents) { - this->CheckDependencyState(ici); + this->CheckDependencyState(*ici); } - this->OnReceiveContentInfo(ci); + this->OnReceiveContentInfo(*ci); return true; } @@ -489,7 +489,7 @@ bool ClientNetworkContentSocketHandler::Receive_SERVER_CONTENT(Packet &p) return false; } - this->OnDownloadProgress(this->cur_info, (int)to_read); + this->OnDownloadProgress(*this->cur_info, (int)to_read); if (to_read == 0) this->AfterDownload(); } @@ -574,7 +574,7 @@ void ClientNetworkContentSocketHandler::OnFailure() this->http_response_index = -2; if (this->cur_file.has_value()) { - this->OnDownloadProgress(this->cur_info, -1); + this->OnDownloadProgress(*this->cur_info, -1); this->cur_file.reset(); } @@ -617,7 +617,7 @@ void ClientNetworkContentSocketHandler::OnReceiveData(std::unique_ptr da this->OnFailure(); } else { /* Just received the data. */ - this->OnDownloadProgress(this->cur_info, (int)length); + this->OnDownloadProgress(*this->cur_info, (int)length); } /* Nothing more to do now. */ @@ -861,7 +861,7 @@ void ClientNetworkContentSocketHandler::Select(ContentID cid) if (ci == nullptr || ci->state != ContentInfo::UNSELECTED) return; ci->state = ContentInfo::SELECTED; - this->CheckDependencyState(ci); + this->CheckDependencyState(*ci); } /** @@ -874,7 +874,7 @@ void ClientNetworkContentSocketHandler::Unselect(ContentID cid) if (ci == nullptr || !ci->IsSelected()) return; ci->state = ContentInfo::UNSELECTED; - this->CheckDependencyState(ci); + this->CheckDependencyState(*ci); } /** Select everything we can select */ @@ -883,7 +883,7 @@ void ClientNetworkContentSocketHandler::SelectAll() for (ContentInfo *ci : this->infos) { if (ci->state == ContentInfo::UNSELECTED) { ci->state = ContentInfo::SELECTED; - this->CheckDependencyState(ci); + this->CheckDependencyState(*ci); } } } @@ -894,7 +894,7 @@ void ClientNetworkContentSocketHandler::SelectUpgrade() for (ContentInfo *ci : this->infos) { if (ci->state == ContentInfo::UNSELECTED && ci->upgrade) { ci->state = ContentInfo::SELECTED; - this->CheckDependencyState(ci); + this->CheckDependencyState(*ci); } } } @@ -908,16 +908,16 @@ void ClientNetworkContentSocketHandler::UnselectAll() } /** Toggle the state of a content info and check its dependencies */ -void ClientNetworkContentSocketHandler::ToggleSelectedState(const ContentInfo *ci) +void ClientNetworkContentSocketHandler::ToggleSelectedState(const ContentInfo &ci) { - switch (ci->state) { + switch (ci.state) { case ContentInfo::SELECTED: case ContentInfo::AUTOSELECTED: - this->Unselect(ci->id); + this->Unselect(ci.id); break; case ContentInfo::UNSELECTED: - this->Select(ci->id); + this->Select(ci.id); break; default: @@ -930,9 +930,9 @@ void ClientNetworkContentSocketHandler::ToggleSelectedState(const ContentInfo *c * @param parents list to store all parents in (is not cleared) * @param child the child to search the parents' dependencies for */ -void ClientNetworkContentSocketHandler::ReverseLookupDependency(ConstContentVector &parents, const ContentInfo *child) const +void ClientNetworkContentSocketHandler::ReverseLookupDependency(ConstContentVector &parents, const ContentInfo &child) const { - auto range = this->reverse_dependency_map.equal_range(child->id); + auto range = this->reverse_dependency_map.equal_range(child.id); for (auto iter = range.first; iter != range.second; ++iter) { parents.push_back(GetContent(iter->second)); @@ -954,7 +954,7 @@ void ClientNetworkContentSocketHandler::ReverseLookupTreeDependency(ConstContent * pointer gets invalid. So fall back to the indices. */ for (uint i = 0; i < tree.size(); i++) { ConstContentVector parents; - this->ReverseLookupDependency(parents, tree[i]); + this->ReverseLookupDependency(parents, *tree[i]); for (const ContentInfo *ci : parents) { include(tree, ci); @@ -966,25 +966,25 @@ void ClientNetworkContentSocketHandler::ReverseLookupTreeDependency(ConstContent * Check the dependencies (recursively) of this content info * @param ci the content info to check the dependencies of */ -void ClientNetworkContentSocketHandler::CheckDependencyState(const ContentInfo *ci) +void ClientNetworkContentSocketHandler::CheckDependencyState(const ContentInfo &ci) { - if (ci->IsSelected() || ci->state == ContentInfo::ALREADY_HERE) { + if (ci.IsSelected() || ci.state == ContentInfo::ALREADY_HERE) { /* Selection is easy; just walk all children and set the * autoselected state. That way we can see what we automatically * selected and thus can unselect when a dependency is removed. */ - for (auto &dependency : ci->dependencies) { + for (auto &dependency : ci.dependencies) { ContentInfo *c = this->GetContent(dependency); if (c == nullptr) { this->DownloadContentInfo(dependency); } else if (c->state == ContentInfo::UNSELECTED) { c->state = ContentInfo::AUTOSELECTED; - this->CheckDependencyState(c); + this->CheckDependencyState(*c); } } return; } - if (ci->state != ContentInfo::UNSELECTED) return; + if (ci.state != ContentInfo::UNSELECTED) return; /* For unselection we need to find the parents of us. We need to * unselect them. After that we unselect all children that we @@ -998,7 +998,7 @@ void ClientNetworkContentSocketHandler::CheckDependencyState(const ContentInfo * this->Unselect(c->id); } - for (auto &dependency : ci->dependencies) { + for (auto &dependency : ci.dependencies) { const ContentInfo *c = this->GetContent(dependency); if (c == nullptr) { DownloadContentInfo(dependency); @@ -1008,7 +1008,7 @@ void ClientNetworkContentSocketHandler::CheckDependencyState(const ContentInfo * /* Only unselect when WE are the only parent. */ parents.clear(); - this->ReverseLookupDependency(parents, c); + this->ReverseLookupDependency(parents, *c); /* First check whether anything depends on us */ int sel_count = 0; @@ -1048,7 +1048,7 @@ void ClientNetworkContentSocketHandler::CheckDependencyState(const ContentInfo * if (parent->state == ContentInfo::AUTOSELECTED) this->Unselect(parent->id); } for (const ContentInfo *parent : parents) { - this->CheckDependencyState(this->GetContent(parent->id)); + this->CheckDependencyState(*this->GetContent(parent->id)); } } } @@ -1084,7 +1084,7 @@ void ClientNetworkContentSocketHandler::OnDisconnect() } } -void ClientNetworkContentSocketHandler::OnReceiveContentInfo(const ContentInfo *ci) +void ClientNetworkContentSocketHandler::OnReceiveContentInfo(const ContentInfo &ci) { for (size_t i = 0; i < this->callbacks.size(); /* nothing */) { ContentCallback *cb = this->callbacks[i]; @@ -1094,7 +1094,7 @@ void ClientNetworkContentSocketHandler::OnReceiveContentInfo(const ContentInfo * } } -void ClientNetworkContentSocketHandler::OnDownloadProgress(const ContentInfo *ci, int bytes) +void ClientNetworkContentSocketHandler::OnDownloadProgress(const ContentInfo &ci, int bytes) { for (size_t i = 0; i < this->callbacks.size(); /* nothing */) { ContentCallback *cb = this->callbacks[i]; diff --git a/src/network/network_content.h b/src/network/network_content.h index ee145ff6a4..0f09ee958c 100644 --- a/src/network/network_content.h +++ b/src/network/network_content.h @@ -42,14 +42,14 @@ struct ContentCallback { * We received a content info. * @param ci the content info */ - virtual void OnReceiveContentInfo([[maybe_unused]] const ContentInfo *ci) {} + virtual void OnReceiveContentInfo([[maybe_unused]] const ContentInfo &ci) {} /** * We have progress in the download of a file * @param ci the content info of the file * @param bytes the number of bytes downloaded since the previous call */ - virtual void OnDownloadProgress([[maybe_unused]] const ContentInfo *ci, [[maybe_unused]] int bytes) {} + virtual void OnDownloadProgress([[maybe_unused]] const ContentInfo &ci, [[maybe_unused]] int bytes) {} /** * We have finished downloading a file @@ -90,8 +90,8 @@ protected: void OnConnect(bool success) override; void OnDisconnect() override; - void OnReceiveContentInfo(const ContentInfo *ci) override; - void OnDownloadProgress(const ContentInfo *ci, int bytes) override; + void OnReceiveContentInfo(const ContentInfo &ci) override; + void OnDownloadProgress(const ContentInfo &ci, int bytes) override; void OnDownloadComplete(ContentID cid) override; void OnFailure() override; @@ -126,11 +126,11 @@ public: void SelectAll(); void SelectUpgrade(); void UnselectAll(); - void ToggleSelectedState(const ContentInfo *ci); + void ToggleSelectedState(const ContentInfo &ci); - void ReverseLookupDependency(ConstContentVector &parents, const ContentInfo *child) const; + void ReverseLookupDependency(ConstContentVector &parents, const ContentInfo &child) const; void ReverseLookupTreeDependency(ConstContentVector &tree, const ContentInfo *child) const; - void CheckDependencyState(const ContentInfo *ci); + void CheckDependencyState(const ContentInfo &ci); /** Get the number of content items we know locally. */ uint Length() const { return (uint)this->infos.size(); } diff --git a/src/network/network_content_gui.cpp b/src/network/network_content_gui.cpp index 7a9ff3d124..c795ef8e0c 100644 --- a/src/network/network_content_gui.cpp +++ b/src/network/network_content_gui.cpp @@ -165,11 +165,11 @@ void BaseNetworkContentDownloadStatusWindow::DrawWidget(const Rect &r, WidgetID } } -void BaseNetworkContentDownloadStatusWindow::OnDownloadProgress(const ContentInfo *ci, int bytes) +void BaseNetworkContentDownloadStatusWindow::OnDownloadProgress(const ContentInfo &ci, int bytes) { - if (ci->id != this->cur_id) { - this->name = ci->filename; - this->cur_id = ci->id; + if (ci.id != this->cur_id) { + this->name = ci.filename; + this->cur_id = ci.id; this->downloaded_files++; } @@ -298,10 +298,10 @@ public: } } - void OnDownloadProgress(const ContentInfo *ci, int bytes) override + void OnDownloadProgress(const ContentInfo &ci, int bytes) override { BaseNetworkContentDownloadStatusWindow::OnDownloadProgress(ci, bytes); - include(this->receivedTypes, ci->type); + include(this->receivedTypes, ci.type); /* When downloading is finished change cancel in ok */ if (this->downloaded_bytes == this->total_bytes) { @@ -792,7 +792,7 @@ public: const NWidgetBase *checkbox = this->GetWidget(WID_NCL_CHECKBOX); if (click_count > 1 || IsInsideBS(pt.x, checkbox->pos_x, checkbox->current_x)) { - _network_content_client.ToggleSelectedState(this->selected); + _network_content_client.ToggleSelectedState(*this->selected); this->content.ForceResort(); this->content.ForceRebuild(); } @@ -870,7 +870,7 @@ public: case WKC_RETURN: if (keycode == WKC_RETURN || !IsWidgetFocused(WID_NCL_FILTER)) { if (this->selected != nullptr) { - _network_content_client.ToggleSelectedState(this->selected); + _network_content_client.ToggleSelectedState(*this->selected); this->content.ForceResort(); this->InvalidateData(); } @@ -925,9 +925,9 @@ public: this->vscroll->SetCapacityFromWidget(this, WID_NCL_MATRIX); } - void OnReceiveContentInfo(const ContentInfo *rci) override + void OnReceiveContentInfo(const ContentInfo &rci) override { - if (this->auto_select && !rci->IsSelected()) _network_content_client.ToggleSelectedState(rci); + if (this->auto_select && !rci.IsSelected()) _network_content_client.ToggleSelectedState(rci); this->content.ForceRebuild(); this->InvalidateData(0, false); } diff --git a/src/network/network_content_gui.h b/src/network/network_content_gui.h index 2de7b262df..6fd71d0ad8 100644 --- a/src/network/network_content_gui.h +++ b/src/network/network_content_gui.h @@ -35,7 +35,7 @@ public: void Close([[maybe_unused]] int data = 0) override; void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override; void DrawWidget(const Rect &r, WidgetID widget) const override; - void OnDownloadProgress(const ContentInfo *ci, int bytes) override; + void OnDownloadProgress(const ContentInfo &ci, int bytes) override; }; void BuildContentTypeStringList(); diff --git a/src/script/script_scanner.cpp b/src/script/script_scanner.cpp index f21ffa1dc5..0f9daac8c9 100644 --- a/src/script/script_scanner.cpp +++ b/src/script/script_scanner.cpp @@ -195,13 +195,13 @@ struct ScriptFileChecksumCreator : FileScanner { * @param info The script to get the shortname and md5 sum from. * @return True iff they're the same. */ -static bool IsSameScript(const ContentInfo *ci, bool md5sum, ScriptInfo *info, Subdirectory dir) +static bool IsSameScript(const ContentInfo &ci, bool md5sum, ScriptInfo *info, Subdirectory dir) { uint32_t id = 0; const char *str = info->GetShortName().c_str(); for (int j = 0; j < 4 && *str != '\0'; j++, str++) id |= *str << (8 * j); - if (id != ci->unique_id) return false; + if (id != ci.unique_id) return false; if (!md5sum) return true; ScriptFileChecksumCreator checksum(dir); @@ -229,10 +229,10 @@ static bool IsSameScript(const ContentInfo *ci, bool md5sum, ScriptInfo *info, S checksum.Scan(".nut", path); } - return ci->md5sum == checksum.md5sum; + return ci.md5sum == checksum.md5sum; } -bool ScriptScanner::HasScript(const ContentInfo *ci, bool md5sum) +bool ScriptScanner::HasScript(const ContentInfo &ci, bool md5sum) { for (const auto &item : this->info_list) { if (IsSameScript(ci, md5sum, item.second, this->GetDirectory())) return true; @@ -240,7 +240,7 @@ bool ScriptScanner::HasScript(const ContentInfo *ci, bool md5sum) return false; } -const char *ScriptScanner::FindMainScript(const ContentInfo *ci, bool md5sum) +const char *ScriptScanner::FindMainScript(const ContentInfo &ci, bool md5sum) { for (const auto &item : this->info_list) { if (IsSameScript(ci, md5sum, item.second, this->GetDirectory())) return item.second->GetMainScript().c_str(); diff --git a/src/script/script_scanner.hpp b/src/script/script_scanner.hpp index 1f5dca0485..30a9b5f018 100644 --- a/src/script/script_scanner.hpp +++ b/src/script/script_scanner.hpp @@ -66,7 +66,7 @@ public: * @param md5sum Whether to check the MD5 checksum. * @return True iff we have a script matching. */ - bool HasScript(const struct ContentInfo *ci, bool md5sum); + bool HasScript(const struct ContentInfo &ci, bool md5sum); /** * Find a script of a #ContentInfo @@ -74,7 +74,7 @@ public: * @param md5sum Whether to check the MD5 checksum. * @return A filename of a file of the content, else \c nullptr. */ - const char *FindMainScript(const ContentInfo *ci, bool md5sum); + const char *FindMainScript(const ContentInfo &ci, bool md5sum); bool AddFile(const std::string &filename, size_t basepath_length, const std::string &tar_filename) override;