Directory: eliminate attribute "have_stat"
Check for 0 in "device" and "inode" instead.
This commit is contained in:
parent
b2433a664c
commit
fefb35c782
@ -39,7 +39,8 @@
|
|||||||
|
|
||||||
Directory::Directory(std::string &&_path_utf8, Directory *_parent)
|
Directory::Directory(std::string &&_path_utf8, Directory *_parent)
|
||||||
:parent(_parent),
|
:parent(_parent),
|
||||||
mtime(0), have_stat(false),
|
mtime(0),
|
||||||
|
inode(0), device(0),
|
||||||
path(std::move(_path_utf8)),
|
path(std::move(_path_utf8)),
|
||||||
mounted_database(nullptr)
|
mounted_database(nullptr)
|
||||||
{
|
{
|
||||||
|
@ -95,7 +95,6 @@ struct Directory {
|
|||||||
Directory *parent;
|
Directory *parent;
|
||||||
time_t mtime;
|
time_t mtime;
|
||||||
unsigned inode, device;
|
unsigned inode, device;
|
||||||
bool have_stat; /* not needed if ino_t == dev_t == 0 is impossible */
|
|
||||||
|
|
||||||
std::string path;
|
std::string path;
|
||||||
|
|
||||||
|
@ -71,7 +71,6 @@ directory_set_stat(Directory &dir, const FileInfo &info)
|
|||||||
{
|
{
|
||||||
dir.inode = info.inode;
|
dir.inode = info.inode;
|
||||||
dir.device = info.device;
|
dir.device = info.device;
|
||||||
dir.have_stat = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void
|
inline void
|
||||||
@ -167,7 +166,7 @@ FindAncestorLoop(Storage &storage, Directory *parent,
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
while (parent) {
|
while (parent) {
|
||||||
if (!parent->have_stat &&
|
if (parent->device == 0 && parent->inode == 0 &&
|
||||||
!update_directory_stat(storage, *parent))
|
!update_directory_stat(storage, *parent))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user