Codechange: [Script] Use std::unique_ptr for Company::ai_instance (#12544)

This commit is contained in:
Loïc Guilloux 2024-04-20 16:58:46 +02:00 committed by GitHub
parent 1dfd0c19f4
commit c5ef47ee09
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 4 additions and 4 deletions

View File

@ -60,7 +60,7 @@
c->ai_info = info; c->ai_info = info;
assert(c->ai_instance == nullptr); assert(c->ai_instance == nullptr);
c->ai_instance = new AIInstance(); c->ai_instance = std::make_unique<AIInstance>();
c->ai_instance->Initialize(info); c->ai_instance->Initialize(info);
c->ai_instance->LoadOnStack(config->GetToLoadData()); c->ai_instance->LoadOnStack(config->GetToLoadData());
config->SetToLoadData(nullptr); config->SetToLoadData(nullptr);
@ -112,8 +112,7 @@
Backup<CompanyID> cur_company(_current_company, company); Backup<CompanyID> cur_company(_current_company, company);
Company *c = Company::Get(company); Company *c = Company::Get(company);
delete c->ai_instance; c->ai_instance.reset();
c->ai_instance = nullptr;
c->ai_info = nullptr; c->ai_info = nullptr;
c->ai_config.reset(); c->ai_config.reset();

View File

@ -134,7 +134,7 @@ struct Company : CompanyProperties, CompanyPool::PoolItem<&_company_pool> {
RailTypes avail_railtypes; ///< Rail types available to this company. RailTypes avail_railtypes; ///< Rail types available to this company.
RoadTypes avail_roadtypes; ///< Road types available to this company. RoadTypes avail_roadtypes; ///< Road types available to this company.
class AIInstance *ai_instance; std::unique_ptr<class AIInstance> ai_instance;
class AIInfo *ai_info; class AIInfo *ai_info;
std::unique_ptr<class AIConfig> ai_config; std::unique_ptr<class AIConfig> ai_config;

View File

@ -20,6 +20,7 @@
#include "network/network_base.h" #include "network/network_base.h"
#include "network/network_admin.h" #include "network/network_admin.h"
#include "ai/ai.hpp" #include "ai/ai.hpp"
#include "ai/ai_instance.hpp"
#include "ai/ai_config.hpp" #include "ai/ai_config.hpp"
#include "company_manager_face.h" #include "company_manager_face.h"
#include "window_func.h" #include "window_func.h"