mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu.git
				synced 2025-05-12 00:45:25 +00:00 
			
		
		
		
	Config: Use unique_ptr instead of raw pointer
This commit is contained in:
		
							parent
							
								
									ba2a54a9dd
								
							
						
					
					
						commit
						48366b1071
					
				@ -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…
	
		Reference in New Issue
	
	Block a user