Make sure types in ABI are standard layout
This commit is contained in:
@@ -22,7 +22,13 @@
|
|||||||
bool debugVerboseEnabled = true;
|
bool debugVerboseEnabled = true;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static_assert(std::is_standard_layout_v<weaselab::VersionedMap::MutationType>);
|
||||||
|
static_assert(std::is_standard_layout_v<weaselab::VersionedMap::Key>);
|
||||||
|
static_assert(std::is_standard_layout_v<weaselab::VersionedMap::Mutation>);
|
||||||
|
static_assert(std::is_standard_layout_v<weaselab::VersionedMap::Iterator>);
|
||||||
static_assert(std::bidirectional_iterator<weaselab::VersionedMap::Iterator>);
|
static_assert(std::bidirectional_iterator<weaselab::VersionedMap::Iterator>);
|
||||||
|
static_assert(std::is_standard_layout_v<
|
||||||
|
weaselab::VersionedMap::Iterator::VersionedMutation>);
|
||||||
|
|
||||||
void *mmapSafe(void *addr, size_t len, int prot, int flags, int fd,
|
void *mmapSafe(void *addr, size_t len, int prot, int flags, int fd,
|
||||||
off_t offset) {
|
off_t offset) {
|
||||||
|
@@ -104,7 +104,12 @@ struct VersionedMap {
|
|||||||
Iterator(Iterator &&) noexcept;
|
Iterator(Iterator &&) noexcept;
|
||||||
Iterator &operator=(Iterator &&) noexcept;
|
Iterator &operator=(Iterator &&) noexcept;
|
||||||
|
|
||||||
struct VersionedMutation : Mutation {
|
struct VersionedMutation {
|
||||||
|
const uint8_t *param1;
|
||||||
|
const uint8_t *param2;
|
||||||
|
int param1Len;
|
||||||
|
int param2Len;
|
||||||
|
MutationType type;
|
||||||
int64_t version;
|
int64_t version;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -122,7 +127,7 @@ struct VersionedMap {
|
|||||||
Iterator operator--(int);
|
Iterator operator--(int);
|
||||||
|
|
||||||
using difference_type = ptrdiff_t;
|
using difference_type = ptrdiff_t;
|
||||||
using value_type = Mutation;
|
using value_type = VersionedMutation;
|
||||||
|
|
||||||
bool operator==(const Iterator &) const;
|
bool operator==(const Iterator &) const;
|
||||||
bool operator!=(const Iterator &) const;
|
bool operator!=(const Iterator &) const;
|
||||||
|
Reference in New Issue
Block a user