diff options
author | Max Kellermann <max@duempel.org> | 2008-10-08 11:08:16 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2008-10-08 11:08:16 +0200 |
commit | 0bfe7802d251286db03c7d9dfd1b3cd325060863 (patch) | |
tree | 8f71eda8f6243b2e0b71fb3458beff3ddd244e7e /src/directory.c | |
parent | 3b6efa99daf466f95407560b294fce5e5170ef63 (diff) | |
download | mpd-0bfe7802d251286db03c7d9dfd1b3cd325060863.tar.gz mpd-0bfe7802d251286db03c7d9dfd1b3cd325060863.tar.xz mpd-0bfe7802d251286db03c7d9dfd1b3cd325060863.zip |
directory: path must not be NULL
For the root directory, let's set path to an empty string. This saves
a few checks.
Diffstat (limited to 'src/directory.c')
-rw-r--r-- | src/directory.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/directory.c b/src/directory.c index af278664c..3bafacf7c 100644 --- a/src/directory.c +++ b/src/directory.c @@ -32,10 +32,11 @@ directory_new(const char *dirname, struct directory *parent) { struct directory *directory; - directory = xcalloc(1, sizeof(*directory)); + assert(dirname != NULL); + assert((*dirname == 0) == (parent == NULL)); - if (dirname && strlen(dirname)) - directory->path = xstrdup(dirname); + directory = xcalloc(1, sizeof(*directory)); + directory->path = xstrdup(dirname); directory->parent = parent; return directory; @@ -46,8 +47,7 @@ directory_free(struct directory *directory) { dirvec_destroy(&directory->children); songvec_destroy(&directory->songs); - if (directory->path) - free(directory->path); + free(directory->path); free(directory); /* this resets last dir returned */ /*directory_get_path(NULL); */ @@ -131,7 +131,7 @@ directory_save(FILE *fp, struct directory *directory) size_t i; int retv; - if (directory->path) { + if (!isRootDirectory(directory->path)) { retv = fprintf(fp, "%s%s\n", DIRECTORY_BEGIN, directory_get_path(directory)); if (retv < 0) @@ -151,7 +151,7 @@ directory_save(FILE *fp, struct directory *directory) songvec_save(fp, &directory->songs); - if (directory->path && + if (!isRootDirectory(directory->path) && fprintf(fp, DIRECTORY_END "%s\n", directory_get_path(directory)) < 0) return -1; |