Use more conventional field order in Mutation

This commit is contained in:
2024-06-03 13:26:27 -07:00
parent a3591ebdb8
commit 9e90d5aadf
7 changed files with 20 additions and 20 deletions

View File

@@ -17,9 +17,9 @@ void setAndClearPrev() {
const int64_t k = __builtin_bswap64(version); const int64_t k = __builtin_bswap64(version);
const int64_t zero = __builtin_bswap64(0); const int64_t zero = __builtin_bswap64(0);
weaselab::VersionedMap::Mutation m[] = { weaselab::VersionedMap::Mutation m[] = {
{(const uint8_t *)&zero, (const uint8_t *)&k, 8, 8, {(const uint8_t *)&zero, 8, (const uint8_t *)&k, 8,
weaselab::VersionedMap::Clear}, weaselab::VersionedMap::Clear},
{(const uint8_t *)&k, (const uint8_t *)&k, 8, 8, {(const uint8_t *)&k, 8, (const uint8_t *)&k, 8,
weaselab::VersionedMap::Set}, weaselab::VersionedMap::Set},
}; };
versionedMap.addMutations(m, sizeof(m) / sizeof(m[0]), version); versionedMap.addMutations(m, sizeof(m) / sizeof(m[0]), version);

View File

@@ -14,9 +14,9 @@ void monotonicallyIncreasing() {
const int64_t remove = __builtin_bswap64(facade.getVersion() - kWindow); const int64_t remove = __builtin_bswap64(facade.getVersion() - kWindow);
const int64_t next = __builtin_bswap64(facade.getVersion()); const int64_t next = __builtin_bswap64(facade.getVersion());
weaselab::VersionedMap::Mutation mutations[] = { weaselab::VersionedMap::Mutation mutations[] = {
{(const uint8_t *)&remove, nullptr, 8, 0, {(const uint8_t *)&remove, 8, nullptr, 0,
weaselab::VersionedMap::Clear}, weaselab::VersionedMap::Clear},
{(const uint8_t *)&next, (const uint8_t *)&next, 8, 8, {(const uint8_t *)&next, 8, (const uint8_t *)&next, 8,
weaselab::VersionedMap::Set}, weaselab::VersionedMap::Set},
}; };
facade.addMutations(mutations, sizeof(mutations) / sizeof(mutations[0]), facade.addMutations(mutations, sizeof(mutations) / sizeof(mutations[0]),

View File

@@ -164,20 +164,20 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
case 0: { case 0: {
// Point write // Point write
auto val = randomKey(arena); auto val = randomKey(arena);
mutations.push_back({keys[i].p, val.p, keys[i].len, val.len, mutations.push_back({keys[i].p, keys[i].len, val.p, val.len,
weaselab::VersionedMap::Set}); weaselab::VersionedMap::Set});
++i; ++i;
} break; } break;
case 1: { case 1: {
// Point clear // Point clear
mutations.push_back({keys[i].p, nullptr, keys[i].len, 0, mutations.push_back({keys[i].p, keys[i].len, nullptr, 0,
weaselab::VersionedMap::Clear}); weaselab::VersionedMap::Clear});
++i; ++i;
} break; } break;
case 2: { case 2: {
// Range clear // Range clear
if (i + 1 < int(keys.size())) { if (i + 1 < int(keys.size())) {
mutations.push_back({keys[i].p, keys[i + 1].p, keys[i].len, mutations.push_back({keys[i].p, keys[i].len, keys[i + 1].p,
keys[i + 1].len, keys[i + 1].len,
weaselab::VersionedMap::Clear}); weaselab::VersionedMap::Clear});
i += 2; i += 2;

View File

@@ -13,16 +13,16 @@ inline String operator"" _s(const char *str, size_t size) {
weaselab::VersionedMap::Mutation set(weaselab::VersionedMap::Key k, weaselab::VersionedMap::Mutation set(weaselab::VersionedMap::Key k,
weaselab::VersionedMap::Key v) { weaselab::VersionedMap::Key v) {
return {k.p, v.p, k.len, v.len, weaselab::VersionedMap::Set}; return {k.p, k.len, v.p, v.len, weaselab::VersionedMap::Set};
} }
weaselab::VersionedMap::Mutation clear(weaselab::VersionedMap::Key k) { weaselab::VersionedMap::Mutation clear(weaselab::VersionedMap::Key k) {
return {k.p, nullptr, k.len, 0, weaselab::VersionedMap::Clear}; return {k.p, k.len, nullptr, 0, weaselab::VersionedMap::Clear};
} }
weaselab::VersionedMap::Mutation clear(weaselab::VersionedMap::Key begin, weaselab::VersionedMap::Mutation clear(weaselab::VersionedMap::Key begin,
weaselab::VersionedMap::Key end) { weaselab::VersionedMap::Key end) {
return {begin.p, end.p, begin.len, end.len, weaselab::VersionedMap::Clear}; return {begin.p, begin.len, end.p, end.len, weaselab::VersionedMap::Clear};
} }
void breakpoint_me() {} void breakpoint_me() {}

View File

@@ -1235,7 +1235,7 @@ struct __attribute__((__visibility__("hidden"))) VersionedMap::Impl {
} }
verUpdateRef.mutations.push_back( verUpdateRef.mutations.push_back(
Mutation{param1.p, param2.p, param1.len, param2.len, m.type}); Mutation{param1.p, param1.len, param2.p, param2.len, m.type});
} }
} }

View File

@@ -1488,26 +1488,26 @@ int main() {
printf("Bytes: %" PRId64 "\n", versionedMap.getBytes()); printf("Bytes: %" PRId64 "\n", versionedMap.getBytes());
{ {
weaselab::VersionedMap::Mutation m[] = { weaselab::VersionedMap::Mutation m[] = {
{(const uint8_t *)"a", nullptr, 1, 0, weaselab::VersionedMap::Set}, {(const uint8_t *)"a", 1, nullptr, 0, weaselab::VersionedMap::Set},
{(const uint8_t *)"b", nullptr, 1, 0, weaselab::VersionedMap::Set}, {(const uint8_t *)"b", 1, nullptr, 0, weaselab::VersionedMap::Set},
{(const uint8_t *)"c", nullptr, 1, 0, weaselab::VersionedMap::Set}, {(const uint8_t *)"c", 1, nullptr, 0, weaselab::VersionedMap::Set},
{(const uint8_t *)"d", nullptr, 1, 0, weaselab::VersionedMap::Set}, {(const uint8_t *)"d", 1, nullptr, 0, weaselab::VersionedMap::Set},
{(const uint8_t *)"e", nullptr, 1, 0, weaselab::VersionedMap::Set}, {(const uint8_t *)"e", 1, nullptr, 0, weaselab::VersionedMap::Set},
{(const uint8_t *)"f", nullptr, 1, 0, weaselab::VersionedMap::Set}, {(const uint8_t *)"f", 1, nullptr, 0, weaselab::VersionedMap::Set},
}; };
versionedMap.addMutations(m, sizeof(m) / sizeof(m[0]), 1); versionedMap.addMutations(m, sizeof(m) / sizeof(m[0]), 1);
} }
printf("Bytes: %" PRId64 "\n", versionedMap.getBytes()); printf("Bytes: %" PRId64 "\n", versionedMap.getBytes());
{ {
weaselab::VersionedMap::Mutation m[] = { weaselab::VersionedMap::Mutation m[] = {
{(const uint8_t *)"a", (const uint8_t *)"d", 1, 1, {(const uint8_t *)"a", 1, (const uint8_t *)"d", 1,
weaselab::VersionedMap::Clear}, weaselab::VersionedMap::Clear},
}; };
versionedMap.addMutations(m, sizeof(m) / sizeof(m[0]), 2); versionedMap.addMutations(m, sizeof(m) / sizeof(m[0]), 2);
} }
{ {
weaselab::VersionedMap::Mutation m[] = { weaselab::VersionedMap::Mutation m[] = {
{(const uint8_t *)"b", (const uint8_t *)"", 1, 0, {(const uint8_t *)"b", 1, (const uint8_t *)"", 0,
weaselab::VersionedMap::Clear}, weaselab::VersionedMap::Clear},
}; };
versionedMap.addMutations(m, sizeof(m) / sizeof(m[0]), 3); versionedMap.addMutations(m, sizeof(m) / sizeof(m[0]), 3);

View File

@@ -60,8 +60,8 @@ struct __attribute__((__visibility__("default"))) VersionedMap {
/** Mutations are bitwise-lexicographically ordered by param1. */ /** Mutations are bitwise-lexicographically ordered by param1. */
struct Mutation { struct Mutation {
const uint8_t *param1; const uint8_t *param1;
const uint8_t *param2;
int param1Len; int param1Len;
const uint8_t *param2;
int param2Len; int param2Len;
MutationType type; MutationType type;
}; };