MapValueCursorIsValid
Description
Check whether a cursor still points to a value for its key (i.e. the per-key iteration has not yet been exhausted).
Parameters
| Name | Direction | Description |
|---|---|---|
cursor |
in | Cursor returned by MapFindFirstForKey or MapFindNextForKey. |
Success
Returns true when cursor refers to an in-range entry (i.e. it is not the past-the-end sentinel). No map is touched.
Failure
Returns false when cursor equals MapValueCursorInvalid(), meaning the per-key iteration is done. No map is touched.
Usage example (Cross-references)
Usage examples (Cross-references)
- In
Access.c:131:
MapValueCursor cursor = MapFindFirstForKey(&map, 15);
bool ok = MapValueCursorIsValid(cursor);
MapRemoveFirst(&map, 10);- In
Access.c:231:
// Cursor APIs on an empty map are invalid / NULL.
MapValueCursor cursor = MapFindFirstForKey(&map, 7);
result = result && !MapValueCursorIsValid(cursor);
result = result && (MapValuePtrFromCursor(&map, cursor) == NULL);- In
Access.c:278:
cursor = MapFindFirstForKey(&map, 4);
while (MapValueCursorIsValid(cursor)) {
int *value_ptr = MapValuePtrFromCursor(&map, cursor);
if (!value_ptr) {- In
Access.c:292:
bool result = (seen == 3) && (value_sum == (40 + 41 + 42));
result = result && !MapValueCursorIsValid(MapFindFirstForKey(&map, 99));
result = result && (MapValuePtrFromCursor(&map, MapValueCursorInvalid()) == NULL);- In
Access.c:296:
// Loop terminated because the cursor went invalid past the last value.
result = result && !MapValueCursorIsValid(cursor);
// Single-valued key: first is valid, next past the end stays invalid,
- In
Access.c:301:
// and advancing an already-invalid cursor remains invalid.
MapValueCursor single = MapFindFirstForKey(&map, 9);
result = result && MapValueCursorIsValid(single);
MapValueCursor past = MapFindNextForKey(&map, 9, single);
result = result && !MapValueCursorIsValid(past);- In
Access.c:303:
result = result && MapValueCursorIsValid(single);
MapValueCursor past = MapFindNextForKey(&map, 9, single);
result = result && !MapValueCursorIsValid(past);
result = result && !MapValueCursorIsValid(MapFindNextForKey(&map, 9, past));- In
Access.c:304:
MapValueCursor past = MapFindNextForKey(&map, 9, single);
result = result && !MapValueCursorIsValid(past);
result = result && !MapValueCursorIsValid(MapFindNextForKey(&map, 9, past));
MapDeinit(&map);- In
Access.c:321:
cursor = MapFindFirstForKey(&map, 5);
if (!MapValueCursorIsValid(cursor)) {
MapDeinit(&map);
DefaultAllocatorDeinit(&alloc);
Last updated on