From cbe130050aea9c49f19f5c0fc67942a04f16171b Mon Sep 17 00:00:00 2001 From: Gary Talent Date: Fri, 24 Jun 2016 01:53:16 -0500 Subject: [PATCH] Removed offsetof macro. --- src/_types.hpp | 2 -- src/filestore.hpp | 16 +++++++--------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/src/_types.hpp b/src/_types.hpp index c28b0ed1c..67d3d74eb 100644 --- a/src/_types.hpp +++ b/src/_types.hpp @@ -7,8 +7,6 @@ */ #pragma once -#define offsetof(st, m) ((size_t)(&((st *)0)->m)) - namespace wombat { namespace fs { diff --git a/src/filestore.hpp b/src/filestore.hpp index aa626503b..442b043dd 100644 --- a/src/filestore.hpp +++ b/src/filestore.hpp @@ -39,8 +39,6 @@ class FileStore { // The following variables should not be assumed to exist FsSize_t m_id; - // must be last item - uint8_t m_data; FsSize_t size(); void setId(InodeId_t); @@ -167,7 +165,7 @@ class FileStore { template FsSize_t FileStore::Inode::size() { - return offsetof(FileStore::Inode, m_id) + dataLen; + return sizeof(Inode) + dataLen; } template @@ -177,7 +175,7 @@ void FileStore::Inode::setId(InodeId_t id) { template void FileStore::Inode::setData(void *data, int size) { - memcpy(&m_data, data, size); + memcpy(this + 1, data, size); dataLen = size; } @@ -217,7 +215,7 @@ int FileStore::write(void *data, FsSize_t dataLen) { template int FileStore::write(InodeId_t id, void *data, FsSize_t dataLen) { auto retval = 1; - const FsSize_t size = offsetof(Inode, m_id) + dataLen; + const FsSize_t size = sizeof(Inode) + dataLen; auto inode = (Inode*) alloc(size); if (inode) { inode->m_id = id; @@ -231,13 +229,13 @@ int FileStore::write(InodeId_t id, void *data, FsSize_t dataLen) { template int FileStore::read(InodeId_t id, void *data, FsSize_t *size) { - auto rec = getRecord(m_root, id); + auto inode = getRecord(m_root, id); int retval = 1; - if (rec) { + if (inode) { if (size) { - *size = rec->dataLen; + *size = inode->dataLen; } - memcpy(data, &rec->m_data, rec->dataLen); + memcpy(data, inode + 1, inode->dataLen); retval = 0; } return retval;