diff options
Diffstat (limited to 'src/libmdsserver/fd-table.c')
-rw-r--r-- | src/libmdsserver/fd-table.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/libmdsserver/fd-table.c b/src/libmdsserver/fd-table.c index 78876ce..6514289 100644 --- a/src/libmdsserver/fd-table.c +++ b/src/libmdsserver/fd-table.c @@ -253,7 +253,7 @@ void fd_table_clear(fd_table_t* restrict this) size_t fd_table_marshal_size(const fd_table_t* restrict this) { size_t bitcap = (this->capacity + 63) / 64; - return (this->capacity + 2) * sizeof(size_t) + bitcap * sizeof(uint64_t); + return (this->capacity + 2) * sizeof(size_t) + bitcap * sizeof(uint64_t) + sizeof(int); } @@ -267,6 +267,9 @@ void fd_table_marshal(const fd_table_t* restrict this, char* restrict data) { size_t bitcap = (this->capacity + 63) / 64; + ((int*)data)[0] = FD_TABLE_T_VERSION; + data += sizeof(int) / sizeof(char); + ((size_t*)data)[0] = this->capacity; ((size_t*)data)[1] = this->size; data += 2 * sizeof(size_t) / sizeof(char); @@ -291,6 +294,9 @@ int fd_table_unmarshal(fd_table_t* restrict this, char* restrict data, remap_fun { size_t bitcap; + /* ((int*)data)[0] == FD_TABLE_T_VERSION */ + data += sizeof(int) / sizeof(char); + this->capacity = ((size_t*)data)[0]; this->size = ((size_t*)data)[1]; data += 2 * sizeof(size_t) / sizeof(char); |