summaryrefslogtreecommitdiffstats
path: root/src/track.c
diff options
context:
space:
mode:
authorLouis Burda <quent.burda@gmail.com>2022-01-08 15:04:18 +0100
committerLouis Burda <quent.burda@gmail.com>2022-01-08 15:04:18 +0100
commit019761cb13674f85468188b193e2fa7ff959f47f (patch)
treea1f753d4d7b0ead8821dbb6366ef5e2e90fda41d /src/track.c
parent43282adc30aadefb563ef26bea1233d4cbdb6007 (diff)
downloadtmus-019761cb13674f85468188b193e2fa7ff959f47f.tar.gz
tmus-019761cb13674f85468188b193e2fa7ff959f47f.zip
Closed memory leaks
Diffstat (limited to 'src/track.c')
-rw-r--r--src/track.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/track.c b/src/track.c
index 31d70b4..e6f35cf 100644
--- a/src/track.c
+++ b/src/track.c
@@ -1,3 +1,4 @@
+#include "ref.h"
#include "track.h"
#include <wchar.h>
@@ -12,21 +13,21 @@ track_init(const char *dir, const char *fname)
struct stat info;
track = malloc(sizeof(struct track));
-
ASSERT(track != NULL);
+
track->fname = strdup(fname);
ASSERT(track->fname != NULL);
+
track->fpath = aprintf("%s/%s", dir, fname);
ASSERT(track->fpath != NULL);
+
track->name = calloc(strlen(track->fname) + 1, sizeof(wchar_t));
ASSERT(track->name != NULL);
mbstowcs(track->name, track->fname, strlen(track->fname) + 1);
- if (!stat(track->fpath, &info)) {
+ track->fid = -1;
+ if (!stat(track->fpath, &info))
track->fid = info.st_ino;
- } else {
- track->fid = -1;
- }
track->tags = LIST_HEAD;
@@ -39,4 +40,8 @@ track_free(struct track *t)
free(t->fname);
free(t->fpath);
free(t->name);
+
+ refs_free(&t->tags);
+
+ free(t);
}