db/update/InotifyUpdate: split the WatchDirectory constructor

This commit is contained in:
Max Kellermann 2020-09-16 21:07:52 +02:00
parent 83f9d2a963
commit e8213220e2

View File

@ -55,9 +55,15 @@ struct WatchDirectory {
std::forward_list<WatchDirectory> children;
template<typename N>
WatchDirectory(WatchDirectory *_parent, N &&_name,
WatchDirectory(N &&_name,
int _descriptor)
:parent(_parent), name(std::forward<N>(_name)),
:parent(nullptr), name(std::forward<N>(_name)),
descriptor(_descriptor) {}
template<typename N>
WatchDirectory(WatchDirectory &_parent, N &&_name,
int _descriptor)
:parent(&_parent), name(std::forward<N>(_name)),
descriptor(_descriptor) {}
WatchDirectory(const WatchDirectory &) = delete;
@ -203,7 +209,7 @@ try {
/* already being watched */
continue;
parent.children.emplace_front(&parent,
parent.children.emplace_front(parent,
name_fs,
ret);
child = &parent.children.front();
@ -310,7 +316,7 @@ mpd_inotify_init(EventLoop &loop, Storage &storage, UpdateService &update,
return;
}
inotify_root = new WatchDirectory(nullptr, path, descriptor);
inotify_root = new WatchDirectory(path, descriptor);
tree_add_watch_directory(inotify_root);