summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Pavone <pavone@retrodev.com>2019-04-29 19:18:55 -0700
committerMichael Pavone <pavone@retrodev.com>2019-04-29 19:18:55 -0700
commit7ded25eef2ac9d81c392baa1a272bc0be0dd3674 (patch)
tree844afd3f63b369c1abd6f73a78ab6b340fa120dd
parentdb9dc9f1f2af166e41df87a71c168a36d65f9a2b (diff)
Fix a couple of small memory leaks
-rw-r--r--nuklear_ui/blastem_nuklear.c1
-rw-r--r--paths.c25
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;
diff --git a/paths.c b/paths.c
index 4652316..091646b 100644
--- a/paths.c
+++ b/paths.c
@@ -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);
}