From a32a497a355d4ecbfc9625210d380c012b9fc7e1 Mon Sep 17 00:00:00 2001 From: Gary Talent Date: Tue, 28 Jun 2016 23:12:18 -0500 Subject: [PATCH] Removed prev value from inodes. --- src/ox/fs/filestore.hpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/ox/fs/filestore.hpp b/src/ox/fs/filestore.hpp index 8835ab11f..5ee872ec9 100644 --- a/src/ox/fs/filestore.hpp +++ b/src/ox/fs/filestore.hpp @@ -25,6 +25,7 @@ class FileStore { uint32_t version; FsSize_t size; FsSize_t rootInode; + FsSize_t lastInode; }; struct StatInfo { @@ -35,12 +36,12 @@ class FileStore { private: struct Inode { // the next Inode in memory - FsSize_t prev, next; + FsSize_t next; FsSize_t left, right; FsSize_t dataLen; // The following variables should not be assumed to exist - FsSize_t m_id; + InodeId_t m_id; FsSize_t size(); void setId(InodeId_t); @@ -299,9 +300,8 @@ void *FileStore::alloc(FsSize_t size) { const auto retval = lastInode()->next; const auto inode = ptr(retval); memset(inode, 0, size); - inode->prev = ptr(lastInode()); inode->next = retval + size; - firstInode()->prev = retval; + getHeader()->lastInode = retval; return inode; } @@ -358,7 +358,7 @@ typename FileStore::Inode *FileStore::firstInode() { template typename FileStore::Inode *FileStore::lastInode() { - return ptr(firstInode()->prev); + return ptr(getHeader()->lastInode); } template @@ -374,10 +374,11 @@ uint8_t *FileStore::format(uint8_t *buffer, FsSize_t size) { header->version = FileStore::version(); header->size = size; header->rootInode = sizeof(FsHeader); + header->lastInode = sizeof(FsHeader); auto inodeSection = (Inode*) (buffer + header->rootInode); inodeSection->m_id = 0; - inodeSection->next = inodeSection->prev = (FsSize_t) ((uint8_t*) inodeSection - (uint8_t*) buffer); + inodeSection->next = (FsSize_t) ((uint8_t*) inodeSection - (uint8_t*) buffer); return (uint8_t*) header; }