Cleaned up how Inode data is accessed.
This commit is contained in:
@@ -45,6 +45,7 @@ class FileStore {
|
|||||||
FsSize_t size();
|
FsSize_t size();
|
||||||
void setId(InodeId_t);
|
void setId(InodeId_t);
|
||||||
void setData(void *data, int size);
|
void setData(void *data, int size);
|
||||||
|
void *data();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Inode() = default;
|
Inode() = default;
|
||||||
@@ -177,11 +178,17 @@ void FileStore<FsSize_t>::Inode::setId(InodeId_t id) {
|
|||||||
|
|
||||||
template<typename FsSize_t>
|
template<typename FsSize_t>
|
||||||
void FileStore<FsSize_t>::Inode::setData(void *data, int size) {
|
void FileStore<FsSize_t>::Inode::setData(void *data, int size) {
|
||||||
memcpy(this + 1, data, size);
|
memcpy(this->data(), data, size);
|
||||||
dataLen = size;
|
dataLen = size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<typename FsSize_t>
|
||||||
|
void *FileStore<FsSize_t>::Inode::data() {
|
||||||
|
return this + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// FileStore
|
// FileStore
|
||||||
|
|
||||||
template<typename FsSize_t>
|
template<typename FsSize_t>
|
||||||
@@ -237,7 +244,7 @@ int FileStore<FsSize_t>::read(InodeId_t id, void *data, FsSize_t *size) {
|
|||||||
if (size) {
|
if (size) {
|
||||||
*size = inode->dataLen;
|
*size = inode->dataLen;
|
||||||
}
|
}
|
||||||
memcpy(data, inode + 1, inode->dataLen);
|
memcpy(data, inode->data(), inode->dataLen);
|
||||||
retval = 0;
|
retval = 0;
|
||||||
}
|
}
|
||||||
return retval;
|
return retval;
|
||||||
|
|||||||
Reference in New Issue
Block a user