mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 05:40:04 +00:00 
			
		
		
		
	Config: Use unique_ptr instead of raw pointer
This commit is contained in:
		
							parent
							
								
									ba2a54a9dd
								
							
						
					
					
						commit
						48366b1071
					
				
					 2 changed files with 12 additions and 14 deletions
				
			
		|  | @ -10,6 +10,7 @@ | |||
| 
 | ||||
| #include "common/file_util.h" | ||||
| #include "common/logging/log.h" | ||||
| #include "common/make_unique.h" | ||||
| 
 | ||||
| #include "core/settings.h" | ||||
| 
 | ||||
|  | @ -18,20 +19,21 @@ | |||
| Config::Config() { | ||||
|     // TODO: Don't hardcode the path; let the frontend decide where to put the config files.
 | ||||
|     sdl2_config_loc = FileUtil::GetUserPath(D_CONFIG_IDX) + "sdl2-config.ini"; | ||||
|     sdl2_config = new INIReader(sdl2_config_loc); | ||||
|     sdl2_config = Common::make_unique<INIReader>(sdl2_config_loc); | ||||
| 
 | ||||
|     Reload(); | ||||
| } | ||||
| 
 | ||||
| bool Config::LoadINI(INIReader* config, const char* location, const std::string& default_contents, bool retry) { | ||||
|     if (config->ParseError() < 0) { | ||||
| bool Config::LoadINI(const std::string& default_contents, bool retry) { | ||||
|     const char* location = this->sdl2_config_loc.c_str(); | ||||
|     if (sdl2_config->ParseError() < 0) { | ||||
|         if (retry) { | ||||
|             LOG_WARNING(Config, "Failed to load %s. Creating file from defaults...", location); | ||||
|             FileUtil::CreateFullPath(location); | ||||
|             FileUtil::WriteStringToFile(true, default_contents, location); | ||||
|             *config = INIReader(location); // Reopen file
 | ||||
|             sdl2_config = Common::make_unique<INIReader>(location); // Reopen file
 | ||||
| 
 | ||||
|             return LoadINI(config, location, default_contents, false); | ||||
|             return LoadINI(default_contents, false); | ||||
|         } | ||||
|         LOG_ERROR(Config, "Failed."); | ||||
|         return false; | ||||
|  | @ -82,10 +84,6 @@ void Config::ReadValues() { | |||
| } | ||||
| 
 | ||||
| void Config::Reload() { | ||||
|     LoadINI(sdl2_config, sdl2_config_loc.c_str(), DefaultINI::sdl2_config_file); | ||||
|     LoadINI(DefaultINI::sdl2_config_file); | ||||
|     ReadValues(); | ||||
| } | ||||
| 
 | ||||
| Config::~Config() { | ||||
|     delete sdl2_config; | ||||
| } | ||||
|  |  | |||
|  | @ -4,19 +4,19 @@ | |||
| 
 | ||||
| #pragma once | ||||
| 
 | ||||
| #include <memory> | ||||
| #include <string> | ||||
| 
 | ||||
| class INIReader; | ||||
| #include <inih/cpp/INIReader.h> | ||||
| 
 | ||||
| class Config { | ||||
|     INIReader* sdl2_config; | ||||
|     std::unique_ptr<INIReader> sdl2_config; | ||||
|     std::string sdl2_config_loc; | ||||
| 
 | ||||
|     bool LoadINI(INIReader* config, const char* location, const std::string& default_contents="", bool retry=true); | ||||
|     bool LoadINI(const std::string& default_contents="", bool retry=true); | ||||
|     void ReadValues(); | ||||
| public: | ||||
|     Config(); | ||||
|     ~Config(); | ||||
| 
 | ||||
|     void Reload(); | ||||
| }; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue