MapTombstones
Description
Tombstone count: slots that previously held a key but are now reserved for probe-chain continuity. Reset to zero by rehash.
Parameters
| Name | Direction | Description |
|---|---|---|
m |
in | Map. |
Usage example (Cross-references)
Usage examples (Cross-references)
- In
Ops.c:132:
MapInsertR(&second, 10, 100);
bool result = (MapTombstones(&first) == 1);
MapCompact(&first);- In
Ops.c:135:
MapCompact(&first);
result = result && (MapTombstones(&first) == 0);
result = result && MapContainsPair(&first, 1, 11);
result = result && MapContainsPair(&first, 2, 20);- In
Ops.c:213:
MapRemoveFirst(&map, 2);
bool result = (MapTombstones(&map) == 1);
MapMustCompact(&map);- In
Ops.c:218:
// Returned to caller; tombstones cleared, survivors intact, length exact.
result = result && (MapTombstones(&map) == 0);
result = result && MapContainsPair(&map, 1, 10);
result = result && MapContainsPair(&map, 3, 30);- In
Ops.c:243:
MapRemoveFirst(&map, 1);
bool result = (MapTombstones(&map) == 1);
MapMustRehashWithPolicy(&map, MapPairCount(&map), MapPolicyQuadratic);- In
Ops.c:253:
result = result && (MapPolicy(&map).should_rehash == MapPolicyQuadratic.should_rehash);
// Tombstones gone, survivors intact, exact counts preserved.
result = result && (MapTombstones(&map) == 0);
result = result && !MapContainsKey(&map, 1);
result = result && MapContainsPair(&map, 2, 20);- In
Init.c:70:
MapClear(&map);
bool result = (reserved_capacity >= 32) && (MapCapacity(&map) == reserved_capacity) && (MapTombstones(&map) == 0) &&
(MapPairCount(&map) == 0) && MapEmpty(&map) && !MapContainsKey(&map, 1) && !MapContainsKey(&map, 2);- In
Init.c:151:
(MapPolicy(&map).next_index == MapPolicyLinear.next_index) &&
(MapPolicy(&map).max_probe_count == MapPolicyLinear.max_probe_count) && (MapPairCount(&map) == 0) &&
(MapCapacity(&map) == 0) && (MapTombstones(&map) == 0) && MapEmpty(&map);
MapDeinit(&map);- In
Insert.c:979:
MapInsertR(&map, 7, 70);
MapRemoveFirst(&map, 7);
bool result = (MapTombstones(&map) == 1);
MapInsertR(&map, 7, 71); // reuses the tombstone slot for key 7
- In
Insert.c:982:
MapInsertR(&map, 7, 71); // reuses the tombstone slot for key 7
result = result && (MapTombstones(&map) == 0);
result = result && MapGetFirstPtr(&map, 7) && (*MapGetFirstPtr(&map, 7) == 71);- In
Insert.c:1000:
bool result = MapInsertR(&map, 5, 50);
MapRemoveFirst(&map, 5);
result = result && (MapTombstones(&map) == 1);
g_value_copy_should_fail = true;- In
Insert.c:1007:
result = result && !reinserted;
result = result && (MapTombstones(&map) == 1);
MapDeinit(&map);- In
Insert.c:1115:
MapRemoveAll(&map, 1);
MapRemoveAll(&map, 3);
bool result = (MapTombstones(&map) == 2);
MapInsertR(&map, 200, 200); // exactly on the 3/4 boundary -> must rehash
- In
Insert.c:1119:
MapInsertR(&map, 200, 200); // exactly on the 3/4 boundary -> must rehash
result = result && (MapTombstones(&map) == 0);
result = result && MapGetFirstPtr(&map, 200) && (*MapGetFirstPtr(&map, 200) == 200);- In
Insert.c:1157:
MapInsertR(&map, 7, 70);
bool result = (MapTombstones(&map) == 0);
MapSetOnlyR(&map, 7, 700); // remove-all (tomb=1) then raw reinsert into the tombstone
- In
Insert.c:1161:
MapSetOnlyR(&map, 7, 700); // remove-all (tomb=1) then raw reinsert into the tombstone
result = result && (MapTombstones(&map) == 0);
result = result && (MapPairCount(&map) == 1);
result = result && (MapValueCountForKey(&map, 7) == 1);- In
Type.c:61:
IntIntMap map = MapInit(i32_hash, i32_compare, &alloc);
bool result = MapPairCount(&map) == 0 && MapCapacity(&map) == 0 && MapTombstones(&map) == 0 &&
MapEntries(&map) == NULL && MapStates(&map) == NULL && MapKeyCompare(&map) == i32_compare &&
MapValueCompare(&map) == NULL && MapKeyHash(&map) == i32_hash &&- In
Remove.c:71:
u64 length_before = MapPairCount(&map);
u64 tombstones_before = MapTombstones(&map);
bool result = !MapRemoveFirst(&map, 99);- In
Remove.c:75:
bool result = !MapRemoveFirst(&map, 99);
result = result && (MapPairCount(&map) == length_before);
result = result && (MapTombstones(&map) == tombstones_before);
result = result && MapContainsKey(&map, 1);
result = result && MapContainsKey(&map, 2);- In
Remove.c:116:
u64 length_before = MapPairCount(&map);
u64 tombstones_before = MapTombstones(&map);
// Key present, value absent.
- In
Remove.c:124:
result = result && (MapPairCount(&map) == length_before);
result = result && (MapTombstones(&map) == tombstones_before);
result = result && MapContainsPair(&map, 5, 50);
result = result && MapContainsPair(&map, 5, 51);- In
Remove.c:162:
MapInsertR(&map, 5, 50);
bool result = (MapTombstones(&map) == 0);
MapRemoveFirst(&map, 5);- In
Remove.c:165:
MapRemoveFirst(&map, 5);
result = result && (MapTombstones(&map) == 1);
result = result && !MapContainsKey(&map, 5);- In
Remove.c:169:
MapInsertR(&map, 5, 51);
result = result && (MapTombstones(&map) == 0);
result = result && (MapPairCount(&map) == 1);
int *value = MapGetFirstPtr(&map, 5);- In
Remove.c:265:
u64 length_before = MapPairCount(&map);
u64 tombstones_before = MapTombstones(&map);
bool result = (MapRemoveAll(&map, 77) == 0);- In
Remove.c:269:
bool result = (MapRemoveAll(&map, 77) == 0);
result = result && (MapPairCount(&map) == length_before);
result = result && (MapTombstones(&map) == tombstones_before);
result = result && MapContainsKey(&map, 5);
result = result && MapContainsKey(&map, 9);
Last updated on