directory: path must not be NULL
For the root directory, let's set path to an empty string. This saves a few checks.
This commit is contained in:
parent
3b6efa99da
commit
0bfe7802d2
@ -39,7 +39,7 @@ static time_t directory_dbModTime;
|
|||||||
void
|
void
|
||||||
db_init(void)
|
db_init(void)
|
||||||
{
|
{
|
||||||
music_root = directory_new(NULL, NULL);
|
music_root = directory_new("", NULL);
|
||||||
updateDirectory(music_root);
|
updateDirectory(music_root);
|
||||||
stats.numberOfSongs = countSongsIn(NULL);
|
stats.numberOfSongs = countSongsIn(NULL);
|
||||||
stats.dbPlayTime = sumSongTimesIn(NULL);
|
stats.dbPlayTime = sumSongTimesIn(NULL);
|
||||||
@ -240,7 +240,7 @@ db_load(void)
|
|||||||
struct stat st;
|
struct stat st;
|
||||||
|
|
||||||
if (!music_root)
|
if (!music_root)
|
||||||
music_root = directory_new(NULL, NULL);
|
music_root = directory_new("", NULL);
|
||||||
while (!(fp = fopen(dbFile, "r")) && errno == EINTR) ;
|
while (!(fp = fopen(dbFile, "r")) && errno == EINTR) ;
|
||||||
if (fp == NULL) {
|
if (fp == NULL) {
|
||||||
ERROR("unable to open db file \"%s\": %s\n",
|
ERROR("unable to open db file \"%s\": %s\n",
|
||||||
|
@ -32,10 +32,11 @@ directory_new(const char *dirname, struct directory *parent)
|
|||||||
{
|
{
|
||||||
struct directory *directory;
|
struct directory *directory;
|
||||||
|
|
||||||
directory = xcalloc(1, sizeof(*directory));
|
assert(dirname != NULL);
|
||||||
|
assert((*dirname == 0) == (parent == NULL));
|
||||||
|
|
||||||
if (dirname && strlen(dirname))
|
directory = xcalloc(1, sizeof(*directory));
|
||||||
directory->path = xstrdup(dirname);
|
directory->path = xstrdup(dirname);
|
||||||
directory->parent = parent;
|
directory->parent = parent;
|
||||||
|
|
||||||
return directory;
|
return directory;
|
||||||
@ -46,8 +47,7 @@ directory_free(struct directory *directory)
|
|||||||
{
|
{
|
||||||
dirvec_destroy(&directory->children);
|
dirvec_destroy(&directory->children);
|
||||||
songvec_destroy(&directory->songs);
|
songvec_destroy(&directory->songs);
|
||||||
if (directory->path)
|
free(directory->path);
|
||||||
free(directory->path);
|
|
||||||
free(directory);
|
free(directory);
|
||||||
/* this resets last dir returned */
|
/* this resets last dir returned */
|
||||||
/*directory_get_path(NULL); */
|
/*directory_get_path(NULL); */
|
||||||
@ -131,7 +131,7 @@ directory_save(FILE *fp, struct directory *directory)
|
|||||||
size_t i;
|
size_t i;
|
||||||
int retv;
|
int retv;
|
||||||
|
|
||||||
if (directory->path) {
|
if (!isRootDirectory(directory->path)) {
|
||||||
retv = fprintf(fp, "%s%s\n", DIRECTORY_BEGIN,
|
retv = fprintf(fp, "%s%s\n", DIRECTORY_BEGIN,
|
||||||
directory_get_path(directory));
|
directory_get_path(directory));
|
||||||
if (retv < 0)
|
if (retv < 0)
|
||||||
@ -151,7 +151,7 @@ directory_save(FILE *fp, struct directory *directory)
|
|||||||
|
|
||||||
songvec_save(fp, &directory->songs);
|
songvec_save(fp, &directory->songs);
|
||||||
|
|
||||||
if (directory->path &&
|
if (!isRootDirectory(directory->path) &&
|
||||||
fprintf(fp, DIRECTORY_END "%s\n",
|
fprintf(fp, DIRECTORY_END "%s\n",
|
||||||
directory_get_path(directory)) < 0)
|
directory_get_path(directory)) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -73,8 +73,6 @@ directory_is_empty(struct directory *directory)
|
|||||||
static inline const char *
|
static inline const char *
|
||||||
directory_get_path(struct directory *directory)
|
directory_get_path(struct directory *directory)
|
||||||
{
|
{
|
||||||
if (directory->path == NULL)
|
|
||||||
return "";
|
|
||||||
return directory->path;
|
return directory->path;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user