diff --git a/src/ox/fs/filestore.hpp b/src/ox/fs/filestore.hpp index cedcf99c2..99092bd96 100644 --- a/src/ox/fs/filestore.hpp +++ b/src/ox/fs/filestore.hpp @@ -273,7 +273,7 @@ class FileStore { uint16_t fsType(); uint16_t version(); - + static uint8_t *format(uint8_t *buffer, typename Header::FsSize_t size, uint16_t fsType = 0); private: @@ -893,11 +893,11 @@ template void FileStore
::walk(int(*cb)(const char*, uint64_t start, uint64_t end)) { auto err = cb("Header", 0, sizeof(Header)); auto inode = ptr(firstInode()); - while (!err && inode != (Inode*) begin()) { - inode = ptr(inode->getNext()); + do { auto start = ptr(inode); err = cb("Inode", start, start + inode->size()); - } + inode = ptr(inode->getNext()); + } while (!err && inode != ptr(firstInode())); } template