diff options
author | Michael Pavone <pavone@retrodev.com> | 2019-04-29 19:18:55 -0700 |
---|---|---|
committer | Michael Pavone <pavone@retrodev.com> | 2019-04-29 19:18:55 -0700 |
commit | 7ded25eef2ac9d81c392baa1a272bc0be0dd3674 (patch) | |
tree | 844afd3f63b369c1abd6f73a78ab6b340fa120dd | |
parent | db9dc9f1f2af166e41df87a71c168a36d65f9a2b (diff) |
Fix a couple of small memory leaks
-rw-r--r-- | nuklear_ui/blastem_nuklear.c | 1 | ||||
-rw-r--r-- | paths.c | 25 |
2 files changed, 14 insertions, 12 deletions
diff --git a/nuklear_ui/blastem_nuklear.c b/nuklear_ui/blastem_nuklear.c index 6b269b1..d0fa59c 100644 --- a/nuklear_ui/blastem_nuklear.c +++ b/nuklear_ui/blastem_nuklear.c @@ -1596,6 +1596,7 @@ shader_prog *get_shader_list(uint32_t *num_out) shader_dir = path_append(get_exe_dir(), "shaders"); #endif entries = get_dir_list(shader_dir, &num_entries); + free(shader_dir); progs = get_shader_progs(entries, num_entries, progs, &num_progs, &prog_storage); *num_out = num_progs; return progs; @@ -59,7 +59,7 @@ cleanup: void get_initial_browse_path(char **dst) { - *dst = NULL; + char *base = NULL; char *remember_path = tern_find_path(config, "ui\0remember_path\0", TVAL_PTR).ptrval; if (!remember_path || !strcmp("on", remember_path)) { char *pathfname = alloc_concat(get_userdata_dir(), PATH_SEP "blastem" PATH_SEP "sticky_path"); @@ -67,13 +67,13 @@ void get_initial_browse_path(char **dst) if (f) { long pathsize = file_size(f); if (pathsize > 0) { - *dst = malloc(pathsize + 1); - if (fread(*dst, 1, pathsize, f) != pathsize) { + base = malloc(pathsize + 1); + if (fread(base, 1, pathsize, f) != pathsize) { warning("Error restoring saved file browser path"); - free(*dst); - *dst = NULL; + free(base); + base = NULL; } else { - (*dst)[pathsize] = 0; + base[pathsize] = 0; } } fclose(f); @@ -84,19 +84,20 @@ void get_initial_browse_path(char **dst) current_path = dst; } } - if (!*dst) { - *dst = tern_find_path(config, "ui\0initial_path\0", TVAL_PTR).ptrval; + if (!base) { + base = tern_find_path(config, "ui\0initial_path\0", TVAL_PTR).ptrval; } - if (!*dst){ + if (!base){ #ifdef __ANDROID__ - *dst = get_external_storage_path(); + base = get_external_storage_path(); #else - *dst = "$HOME"; + base = "$HOME"; #endif } tern_node *vars = tern_insert_ptr(NULL, "HOME", get_home_dir()); vars = tern_insert_ptr(vars, "EXEDIR", get_exe_dir()); - *dst = replace_vars(*dst, vars, 1); + *dst = replace_vars(base, vars, 1); + free(base); tern_free(vars); } |