changeset 1858:dda7479f3bbb

Fix a couple of small memory leaks
author Michael Pavone <pavone@retrodev.com>
date Mon, 29 Apr 2019 19:18:55 -0700
parents 1844cf5a4045
children 52f136052ab0
files nuklear_ui/blastem_nuklear.c paths.c
diffstat 2 files changed, 14 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- 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;
--- 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);
 }