# HG changeset patch # User Michael Pavone # Date 1556590735 25200 # Node ID dda7479f3bbb46115c5ccd90039f30b74f73e9c9 # Parent 1844cf5a4045b951dffdb36d711d063a7f59a59c Fix a couple of small memory leaks diff -r 1844cf5a4045 -r dda7479f3bbb nuklear_ui/blastem_nuklear.c --- a/nuklear_ui/blastem_nuklear.c Mon Apr 29 19:08:43 2019 -0700 +++ b/nuklear_ui/blastem_nuklear.c Mon Apr 29 19:18:55 2019 -0700 @@ -1596,6 +1596,7 @@ 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; diff -r 1844cf5a4045 -r dda7479f3bbb paths.c --- a/paths.c Mon Apr 29 19:08:43 2019 -0700 +++ b/paths.c Mon Apr 29 19:18:55 2019 -0700 @@ -59,7 +59,7 @@ 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 @@ 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 @@ 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); }