mirror of
https://github.com/libretro/RetroArch
synced 2025-02-21 00:40:09 +00:00
Reduce stack usage
This commit is contained in:
parent
1f0394d0b6
commit
3860d95c8f
@ -437,24 +437,28 @@ database_info_handle_t *database_info_dir_init(const char *dir,
|
|||||||
|
|
||||||
for (i = 0; i < archive_list->size; i++)
|
for (i = 0; i < archive_list->size; i++)
|
||||||
{
|
{
|
||||||
char new_path[PATH_MAX_LENGTH];
|
char *new_path = (char*)malloc(
|
||||||
size_t path_len = strlen(path);
|
PATH_MAX_LENGTH * sizeof(char));
|
||||||
|
size_t path_size = PATH_MAX_LENGTH * sizeof(char);
|
||||||
|
size_t path_len = strlen(path);
|
||||||
|
|
||||||
new_path[0] = '\0';
|
new_path[0] = '\0';
|
||||||
|
|
||||||
strlcpy(new_path, path, sizeof(new_path));
|
strlcpy(new_path, path, path_size);
|
||||||
|
|
||||||
if (path_len + strlen(archive_list->elems[i].data)
|
if (path_len + strlen(archive_list->elems[i].data)
|
||||||
+ 1 < PATH_MAX_LENGTH)
|
+ 1 < PATH_MAX_LENGTH)
|
||||||
{
|
{
|
||||||
new_path[path_len] = '#';
|
new_path[path_len] = '#';
|
||||||
strlcpy(new_path + path_len + 1,
|
strlcpy(new_path + path_len + 1,
|
||||||
archive_list->elems[i].data,
|
archive_list->elems[i].data,
|
||||||
sizeof(new_path) - path_len);
|
path_size - path_len);
|
||||||
}
|
}
|
||||||
|
|
||||||
string_list_append(db->list, new_path,
|
string_list_append(db->list, new_path,
|
||||||
archive_list->elems[i].attr);
|
archive_list->elems[i].attr);
|
||||||
|
|
||||||
|
free(new_path);
|
||||||
}
|
}
|
||||||
|
|
||||||
string_list_free(archive_list);
|
string_list_free(archive_list);
|
||||||
@ -501,27 +505,30 @@ database_info_handle_t *database_info_file_init(const char *path,
|
|||||||
|
|
||||||
for (i = 0; i < archive_list->size; i++)
|
for (i = 0; i < archive_list->size; i++)
|
||||||
{
|
{
|
||||||
char new_path[PATH_MAX_LENGTH];
|
char *new_path = (char*)malloc(PATH_MAX_LENGTH * sizeof(char));
|
||||||
size_t path_len = strlen(path);
|
size_t path_size = PATH_MAX_LENGTH * sizeof(char);
|
||||||
|
size_t path_len = strlen(path);
|
||||||
|
|
||||||
if (task)
|
if (task)
|
||||||
task_set_progress(task, (i / (float)archive_list->size) * 100);
|
task_set_progress(task,
|
||||||
|
(i / (float)archive_list->size) * 100);
|
||||||
|
|
||||||
new_path[0] = '\0';
|
new_path[0] = '\0';
|
||||||
|
|
||||||
strlcpy(new_path, path, sizeof(new_path));
|
strlcpy(new_path, path, path_size);
|
||||||
|
|
||||||
if (path_len + strlen(archive_list->elems[i].data)
|
if (path_len + strlen(archive_list->elems[i].data)
|
||||||
+ 1 < PATH_MAX_LENGTH)
|
+ 1 < PATH_MAX_LENGTH)
|
||||||
{
|
{
|
||||||
new_path[path_len] = '#';
|
new_path[path_len] = '#';
|
||||||
strlcpy(new_path + path_len + 1,
|
strlcpy(new_path + path_len + 1,
|
||||||
archive_list->elems[i].data,
|
archive_list->elems[i].data,
|
||||||
sizeof(new_path) - path_len);
|
path_size - path_len);
|
||||||
}
|
}
|
||||||
|
|
||||||
string_list_append(db->list, new_path,
|
string_list_append(db->list, new_path,
|
||||||
archive_list->elems[i].attr);
|
archive_list->elems[i].attr);
|
||||||
|
free(new_path);
|
||||||
}
|
}
|
||||||
|
|
||||||
string_list_free(archive_list);
|
string_list_free(archive_list);
|
||||||
|
@ -1029,15 +1029,17 @@ bool rarch_environment_cb(unsigned cmd, void *data)
|
|||||||
const char *fullpath = path_get(RARCH_PATH_CONTENT);
|
const char *fullpath = path_get(RARCH_PATH_CONTENT);
|
||||||
if (!string_is_empty(fullpath))
|
if (!string_is_empty(fullpath))
|
||||||
{
|
{
|
||||||
char temp_path[PATH_MAX_LENGTH];
|
size_t path_size = PATH_MAX_LENGTH * sizeof(char);
|
||||||
|
char *temp_path = (char*)malloc(PATH_MAX_LENGTH * sizeof(char));
|
||||||
|
|
||||||
temp_path[0] = '\0';
|
temp_path[0] = '\0';
|
||||||
|
|
||||||
if (string_is_empty(settings->paths.directory_system))
|
if (string_is_empty(settings->paths.directory_system))
|
||||||
RARCH_WARN("SYSTEM DIR is empty, assume CONTENT DIR %s\n",
|
RARCH_WARN("SYSTEM DIR is empty, assume CONTENT DIR %s\n",
|
||||||
fullpath);
|
fullpath);
|
||||||
fill_pathname_basedir(temp_path, fullpath, sizeof(temp_path));
|
fill_pathname_basedir(temp_path, fullpath, path_size);
|
||||||
dir_set(RARCH_DIR_SYSTEM, temp_path);
|
dir_set(RARCH_DIR_SYSTEM, temp_path);
|
||||||
|
free(temp_path);
|
||||||
}
|
}
|
||||||
|
|
||||||
*(const char**)data = dir_get_ptr(RARCH_DIR_SYSTEM);
|
*(const char**)data = dir_get_ptr(RARCH_DIR_SYSTEM);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user