Changeset - r27386:c89a906df1de
[Not reviewed]
master
0 3 0
Peter Nelson - 19 months ago 2023-05-18 07:38:35
peter1138@openttd.org
Codechange: Use unique_ptr for fios company properties.

This is the data used to show company names in the saveload window.
3 files changed with 4 insertions and 9 deletions:
0 comments (0 inline, 0 general)
src/fios.h
Show inline comments
 
@@ -25,7 +25,7 @@ enum SaveLoadInvalidateWindowData {
 
	SLIWD_FILTER_CHANGES,        ///< The filename filter has changed (via the editbox)
 
};
 

	
 
using CompanyPropertiesMap = std::map<uint, CompanyProperties *>;
 
using CompanyPropertiesMap = std::map<uint, std::unique_ptr<CompanyProperties>>;
 

	
 
/**
 
 * Container for loading in mode SL_LOAD_CHECK.
src/fios_gui.cpp
Show inline comments
 
@@ -55,9 +55,6 @@ void LoadCheckData::Clear()
 
	this->current_date = 0;
 
	this->settings = {};
 

	
 
	for (auto &pair : this->companies) {
 
		delete pair.second;
 
	}
 
	companies.clear();
 

	
 
	this->gamelog.Reset();
src/saveload/company_sl.cpp
Show inline comments
 
@@ -527,8 +527,8 @@ struct PLYRChunkHandler : ChunkHandler {
 

	
 
		int index;
 
		while ((index = SlIterateArray()) != -1) {
 
			CompanyProperties *cprops = new CompanyProperties();
 
			SlObject(cprops, slt);
 
			std::unique_ptr<CompanyProperties> cprops = std::make_unique<CompanyProperties>();
 
			SlObject(cprops.get(), slt);
 

	
 
			/* We do not load old custom names */
 
			if (IsSavegameVersionBefore(SLV_84)) {
 
@@ -549,9 +549,7 @@ struct PLYRChunkHandler : ChunkHandler {
 
			}
 

	
 
			if (_load_check_data.companies.count(index) == 0) {
 
				_load_check_data.companies[index] = cprops;
 
			} else {
 
				delete cprops;
 
				_load_check_data.companies[index] = std::move(cprops);
 
			}
 
		}
 
	}
0 comments (0 inline, 0 general)