Cleanup entry code

This commit is contained in:
Marcus Holland-Moritz 2020-12-02 12:58:09 +01:00
parent 28c6dd6b7a
commit 8d6734bdaf
2 changed files with 5 additions and 16 deletions

View File

@ -82,9 +82,7 @@ class entry : public file_interface {
virtual void accept(entry_visitor& v, bool preorder = false) = 0;
virtual uint32_t inode_num() const = 0;
virtual void scan(os_access& os, progress& prog) = 0;
protected:
void scan_stat(os_access& os, std::string const& p);
const struct ::stat& status() const { return stat_; }
private:
std::string name_;
@ -155,7 +153,7 @@ class link : public entry {
private:
std::string link_;
uint32_t inode_ = 0;
uint32_t inode_{0};
};
class entry_factory {

View File

@ -44,10 +44,6 @@ entry::entry(const std::string& name, std::shared_ptr<entry> parent,
, parent_(std::move(parent))
, stat_(st) {}
void entry::scan_stat(os_access& os, std::string const& p) {
os.lstat(p, &stat_);
}
bool entry::has_parent() const {
if (parent_.lock()) {
return true;
@ -130,12 +126,9 @@ void file::accept(entry_visitor& v, bool) { v.visit(this); }
void file::scan(os_access& os, progress& prog) {
static_assert(SHA_DIGEST_LENGTH == sizeof(hash_type));
auto p = path();
scan_stat(os, p);
if (size_t s = size(); s > 0) {
prog.original_size += s;
auto mm = os.map_file(p, s);
auto mm = os.map_file(path(), s);
::SHA1(mm->as<unsigned char>(), s,
reinterpret_cast<unsigned char*>(&hash_[0]));
@ -190,7 +183,7 @@ void dir::sort() {
void dir::set_inode(uint32_t inode) { inode_ = inode; }
void dir::scan(os_access& os, progress&) { scan_stat(os, path()); }
void dir::scan(os_access&, progress&) {}
void dir::pack_entry(thrift::metadata::metadata& mv2,
global_entry_data const& data) const {
@ -223,9 +216,7 @@ void link::set_inode(uint32_t inode) { inode_ = inode; }
void link::accept(entry_visitor& v, bool) { v.visit(this); }
void link::scan(os_access& os, progress& prog) {
auto p = path();
scan_stat(os, p);
link_ = os.readlink(p, size());
link_ = os.readlink(path(), size());
prog.original_size += size();
}