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/file_util.h" | ||||||
| #include "common/logging/log.h" | #include "common/logging/log.h" | ||||||
|  | #include "common/make_unique.h" | ||||||
| 
 | 
 | ||||||
| #include "core/settings.h" | #include "core/settings.h" | ||||||
| 
 | 
 | ||||||
|  | @ -18,20 +19,21 @@ | ||||||
| Config::Config() { | Config::Config() { | ||||||
|     // TODO: Don't hardcode the path; let the frontend decide where to put the config files.
 |     // 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_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(); |     Reload(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| bool Config::LoadINI(INIReader* config, const char* location, const std::string& default_contents, bool retry) { | bool Config::LoadINI(const std::string& default_contents, bool retry) { | ||||||
|     if (config->ParseError() < 0) { |     const char* location = this->sdl2_config_loc.c_str(); | ||||||
|  |     if (sdl2_config->ParseError() < 0) { | ||||||
|         if (retry) { |         if (retry) { | ||||||
|             LOG_WARNING(Config, "Failed to load %s. Creating file from defaults...", location); |             LOG_WARNING(Config, "Failed to load %s. Creating file from defaults...", location); | ||||||
|             FileUtil::CreateFullPath(location); |             FileUtil::CreateFullPath(location); | ||||||
|             FileUtil::WriteStringToFile(true, default_contents, 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."); |         LOG_ERROR(Config, "Failed."); | ||||||
|         return false; |         return false; | ||||||
|  | @ -82,10 +84,6 @@ void Config::ReadValues() { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void Config::Reload() { | void Config::Reload() { | ||||||
|     LoadINI(sdl2_config, sdl2_config_loc.c_str(), DefaultINI::sdl2_config_file); |     LoadINI(DefaultINI::sdl2_config_file); | ||||||
|     ReadValues(); |     ReadValues(); | ||||||
| } | } | ||||||
| 
 |  | ||||||
| Config::~Config() { |  | ||||||
|     delete sdl2_config; |  | ||||||
| } |  | ||||||
|  |  | ||||||
|  | @ -4,19 +4,19 @@ | ||||||
| 
 | 
 | ||||||
| #pragma once | #pragma once | ||||||
| 
 | 
 | ||||||
|  | #include <memory> | ||||||
| #include <string> | #include <string> | ||||||
| 
 | 
 | ||||||
| class INIReader; | #include <inih/cpp/INIReader.h> | ||||||
| 
 | 
 | ||||||
| class Config { | class Config { | ||||||
|     INIReader* sdl2_config; |     std::unique_ptr<INIReader> sdl2_config; | ||||||
|     std::string sdl2_config_loc; |     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(); |     void ReadValues(); | ||||||
| public: | public: | ||||||
|     Config(); |     Config(); | ||||||
|     ~Config(); |  | ||||||
| 
 | 
 | ||||||
|     void Reload(); |     void Reload(); | ||||||
| }; | }; | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue