update: merged addDirectoryPathToDB() into addParentPathToDB()
The algorithm in addDirectoryPathToDB() can be simplified further if it is combined with the function addParentPathToDB(). Since there is no other caller of addDirectoryPathToDB(), we can do that. This saves another large stack buffer.
This commit is contained in:
parent
4990f04ac0
commit
a79bd723e2
28
src/update.c
28
src/update.c
@ -352,16 +352,14 @@ directory_make_child_checked(struct directory *parent, const char *path)
|
||||
}
|
||||
|
||||
static struct directory *
|
||||
addDirectoryPathToDB(const char *utf8path)
|
||||
addParentPathToDB(const char *utf8path)
|
||||
{
|
||||
struct directory *directory = db_get_root();
|
||||
char *duplicated = xstrdup(utf8path);
|
||||
char *slash = duplicated;
|
||||
|
||||
while (true) {
|
||||
slash = strchr(slash, '/');
|
||||
if (slash != NULL)
|
||||
*slash = 0;
|
||||
while ((slash = strchr(slash, '/')) != NULL) {
|
||||
*slash = 0;
|
||||
|
||||
directory = directory_make_child_checked(directory,
|
||||
duplicated);
|
||||
@ -375,26 +373,6 @@ addDirectoryPathToDB(const char *utf8path)
|
||||
return directory;
|
||||
}
|
||||
|
||||
static struct directory *
|
||||
addParentPathToDB(const char *utf8path)
|
||||
{
|
||||
char *parent;
|
||||
char path_max_tmp[MPD_PATH_MAX];
|
||||
struct directory *parentDirectory;
|
||||
|
||||
parent = parent_path(path_max_tmp, utf8path);
|
||||
|
||||
if (strlen(parent) == 0)
|
||||
parentDirectory = db_get_root();
|
||||
else
|
||||
parentDirectory = addDirectoryPathToDB(parent);
|
||||
|
||||
if (!parentDirectory)
|
||||
return NULL;
|
||||
|
||||
return (struct directory *) parentDirectory;
|
||||
}
|
||||
|
||||
static enum update_return updatePath(const char *utf8path)
|
||||
{
|
||||
struct directory *directory;
|
||||
|
Loading…
Reference in New Issue
Block a user