mirror of
https://github.com/libretro/RetroArch
synced 2025-04-07 13:23:32 +00:00
input_remapping_save_file - optimization from 5a451f6324
-
existing remapping file was needlessly reloaded
This commit is contained in:
parent
19b2ad56b0
commit
2daeb23504
@ -5250,7 +5250,6 @@ bool input_remapping_save_file(const char *path)
|
|||||||
"up", "down", "left", "right",
|
"up", "down", "left", "right",
|
||||||
"a", "x", "l", "r", "l2", "r2",
|
"a", "x", "l", "r", "l2", "r2",
|
||||||
"l3", "r3", "l_x+", "l_x-", "l_y+", "l_y-", "r_x+", "r_x-", "r_y+", "r_y-" };
|
"l3", "r3", "l_x+", "l_x-", "l_y+", "l_y-", "r_x+", "r_x-", "r_y+", "r_y-" };
|
||||||
const char *remap_file = path;
|
|
||||||
config_file_t *conf = NULL;
|
config_file_t *conf = NULL;
|
||||||
runloop_state_t *runloop_st = runloop_state_get_ptr();
|
runloop_state_t *runloop_st = runloop_state_get_ptr();
|
||||||
settings_t *settings = config_st;
|
settings_t *settings = config_st;
|
||||||
@ -5258,11 +5257,11 @@ bool input_remapping_save_file(const char *path)
|
|||||||
|
|
||||||
remap_file_dir[0] = '\0';
|
remap_file_dir[0] = '\0';
|
||||||
|
|
||||||
if (string_is_empty(remap_file))
|
if (string_is_empty(path))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
/* Create output directory, if required */
|
/* Create output directory, if required */
|
||||||
strlcpy(remap_file_dir, remap_file, sizeof(remap_file_dir));
|
strlcpy(remap_file_dir, path, sizeof(remap_file_dir));
|
||||||
path_parent_dir(remap_file_dir);
|
path_parent_dir(remap_file_dir);
|
||||||
|
|
||||||
if (!string_is_empty(remap_file_dir) &&
|
if (!string_is_empty(remap_file_dir) &&
|
||||||
@ -5271,11 +5270,8 @@ bool input_remapping_save_file(const char *path)
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
/* Attempt to load file */
|
/* Attempt to load file */
|
||||||
if (!(conf = config_file_new_from_path_to_string(remap_file)))
|
if (!(conf = config_file_new_alloc()))
|
||||||
{
|
return false;
|
||||||
if (!(conf = config_file_new_alloc()))
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 0; i < MAX_USERS; i++)
|
for (i = 0; i < MAX_USERS; i++)
|
||||||
{
|
{
|
||||||
@ -5395,18 +5391,18 @@ bool input_remapping_save_file(const char *path)
|
|||||||
config_set_int(conf, s1, settings->uints.input_remap_ports[i]);
|
config_set_int(conf, s1, settings->uints.input_remap_ports[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = config_file_write(conf, remap_file, true);
|
ret = config_file_write(conf, path, true);
|
||||||
config_file_free(conf);
|
config_file_free(conf);
|
||||||
|
|
||||||
/* Cache remap file path
|
/* Cache remap file path
|
||||||
* > Must guard against the case where
|
* > Must guard against the case where
|
||||||
* runloop_st->name.remapfile itself
|
* runloop_st->name.remapfile itself
|
||||||
* is passed to this function... */
|
* is passed to this function... */
|
||||||
if (runloop_st->name.remapfile != remap_file)
|
if (runloop_st->name.remapfile != path)
|
||||||
{
|
{
|
||||||
if (runloop_st->name.remapfile)
|
if (runloop_st->name.remapfile)
|
||||||
free(runloop_st->name.remapfile);
|
free(runloop_st->name.remapfile);
|
||||||
runloop_st->name.remapfile = strdup(remap_file);
|
runloop_st->name.remapfile = strdup(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user