diff --git a/src/ox/fs/filestore.hpp b/src/ox/fs/filestore.hpp index 9a7c6e454..f45e2269d 100644 --- a/src/ox/fs/filestore.hpp +++ b/src/ox/fs/filestore.hpp @@ -45,6 +45,7 @@ class FileStore { FsSize_t size(); void setId(InodeId_t); void setData(void *data, int size); + void *data(); private: Inode() = default; @@ -177,11 +178,17 @@ void FileStore::Inode::setId(InodeId_t id) { template void FileStore::Inode::setData(void *data, int size) { - memcpy(this + 1, data, size); + memcpy(this->data(), data, size); dataLen = size; } +template +void *FileStore::Inode::data() { + return this + 1; +} + + // FileStore template @@ -237,7 +244,7 @@ int FileStore::read(InodeId_t id, void *data, FsSize_t *size) { if (size) { *size = inode->dataLen; } - memcpy(data, inode + 1, inode->dataLen); + memcpy(data, inode->data(), inode->dataLen); retval = 0; } return retval;