Skip to content

ValidateMap

ValidateMap

Description

Validate whether a given Map object is valid. Aborts if provided map is uninitialized or corrupted.

Parameters

Name Direction Description
m in Pointer to Map object to validate.

Success

Continue execution, meaning given map is most probably valid.

Failure

abort

Usage example (Cross-references)

Usage examples (Cross-references)
        size        hash_offset
    ) {
        ValidateMap(map);
    
        clear_map(map, entry_size, key_offset, key_size, value_offset, value_size, hash_offset);
        size idx;
    
        ValidateMap(map);
    
        for (idx = 0; idx < map->capacity; idx++) {
        size  new_capacity;
        size  idx;
        ValidateMap(map);
        validate_map_policy(&policy);
        size target_capacity;
    
        ValidateMap(map);
    
        target_capacity = map->policy.next_capacity(map->length, map->capacity, map->tombstones, n);
        u64  hash;
    
        ValidateMap(map);
    
        if (!map->capacity) {
    
    bool map_contains(GenericMap *map, const void *key, size entry_size, size key_offset, size key_size, size hash_offset) {
        ValidateMap(map);
    
        return map->capacity && (map_find_index(map, key, entry_size, key_offset, key_size, hash_offset) < map->capacity);
        size idx;
    
        ValidateMap(map);
    
        if (!map->value_compare) {
        size count = 0;
    
        ValidateMap(map);
    
        for (idx = 0; idx < map->capacity; idx++) {
        bool previous_seen = false;
    
        ValidateMap(map);
    
        if (!map->capacity || previous_index >= map->capacity) {
        size count = 0;
    
        ValidateMap(map);
    
        if (!map->capacity) {
        size idx;
    
        ValidateMap(map);
    
        if (!map->capacity) {
        size idx;
    
        ValidateMap(map);
    
        if (cursor.__index == (size)-1) {
    
    void *map_value_ptr_from_cursor(GenericMap *map, MapValueCursor cursor, size entry_size, size value_offset) {
        ValidateMap(map);
    
        if (cursor.__index == (size)-1 || cursor.__index >= map->capacity ||
        u64  hash;
    
        ValidateMap(map);
    
        if (map->capacity == 0) {
        void *dst_value;
    
        ValidateMap(map);
    
        if (!map->capacity) {
        size idx;
    
        ValidateMap(map);
    
        if (!map->capacity) {
        size idx;
    
        ValidateMap(map);
    
        if (!map->value_compare) {
        size removed = 0;
    
        ValidateMap(map);
    
        if (!map->capacity) {
        size removed = 0;
    
        ValidateMap(map);
    
        if (!predicate) {
        size removed = 0;
    
        ValidateMap(map);
    
        if (!predicate) {
        }
    
        ValidateMap(cfg);
    
        while (StrIterRemainingLength(&si)) {
    #define MapForeachPairPtr(m, key_ptr, value_ptr)                                                                       \
        for (TYPE_OF(m) UNPL(pm) = (m); UNPL(pm); UNPL(pm) = NULL)                                                         \
            if ((ValidateMap(UNPL(pm)), 1) && UNPL(pm)->length > 0)                                                        \
                for (size UNPL(slot) = 0; UNPL(slot) < UNPL(pm)->capacity; UNPL(slot)++)                                   \
                    if (MISRA_PRIV_MapSlotOccupied(UNPL(pm), UNPL(slot)))                                                  \
    #define MapForeachPair(m, key_var, value_var)                                                                          \
        for (TYPE_OF(m) UNPL(pm) = (m); UNPL(pm); UNPL(pm) = NULL)                                                         \
            if ((ValidateMap(UNPL(pm)), 1) && UNPL(pm)->length > 0)                                                        \
                for (size UNPL(slot) = 0; UNPL(slot) < UNPL(pm)->capacity; UNPL(slot)++)                                   \
                    if (MISRA_PRIV_MapSlotOccupied(UNPL(pm), UNPL(slot)))                                                  \
    #define MapForeachKey(m, key_var)                                                                                      \
        for (TYPE_OF(m) UNPL(pm) = (m); UNPL(pm); UNPL(pm) = NULL)                                                         \
            if ((ValidateMap(UNPL(pm)), 1) && UNPL(pm)->length > 0)                                                        \
                for (size UNPL(slot) = 0; UNPL(slot) < UNPL(pm)->capacity; UNPL(slot)++)                                   \
                    if (MISRA_PRIV_MapSlotOccupied(UNPL(pm), UNPL(slot)) &&                                                \
    #define MapForeachValue(m, value_var)                                                                                  \
        for (TYPE_OF(m) UNPL(pm) = (m); UNPL(pm); UNPL(pm) = NULL)                                                         \
            if ((ValidateMap(UNPL(pm)), 1) && UNPL(pm)->length > 0)                                                        \
                for (size UNPL(slot) = 0; UNPL(slot) < UNPL(pm)->capacity; UNPL(slot)++)                                   \
                    if (MISRA_PRIV_MapSlotOccupied(UNPL(pm), UNPL(slot)))                                                  \
    #define MapForeachValuePtr(m, value_ptr)                                                                               \
        for (TYPE_OF(m) UNPL(pm) = (m); UNPL(pm); UNPL(pm) = NULL)                                                         \
            if ((ValidateMap(UNPL(pm)), 1) && UNPL(pm)->length > 0)                                                        \
                for (size UNPL(slot) = 0; UNPL(slot) < UNPL(pm)->capacity; UNPL(slot)++)                                   \
                    if (MISRA_PRIV_MapSlotOccupied(UNPL(pm), UNPL(slot)))                                                  \
    #define MapForeachValueForKey(m, lookup_key, value_var)                                                                \
        for (TYPE_OF(m) UNPL(pm) = (m); UNPL(pm); UNPL(pm) = NULL)                                                         \
            if ((ValidateMap(UNPL(pm)), 1) && UNPL(pm)->length > 0)                                                        \
                for (bool UNPL(_key_once) = true; UNPL(_key_once); UNPL(_key_once) = false)                                \
                    for (MAP_KEY_TYPE(UNPL(pm)) UNPL(find_key) = (lookup_key); UNPL(_key_once); UNPL(_key_once) = false)   \
    #define MapForeachValuePtrForKey(m, lookup_key, value_ptr)                                                             \
        for (TYPE_OF(m) UNPL(pm) = (m); UNPL(pm); UNPL(pm) = NULL)                                                         \
            if ((ValidateMap(UNPL(pm)), 1) && UNPL(pm)->length > 0)                                                        \
                for (bool UNPL(_key_once) = true; UNPL(_key_once); UNPL(_key_once) = false)                                \
                    for (MAP_KEY_TYPE(UNPL(pm)) UNPL(find_key) = (lookup_key); UNPL(_key_once); UNPL(_key_once) = false)   \
    #define MapSwap(lhs, rhs)                                                                                              \
        do {                                                                                                               \
            ValidateMap(lhs);                                                                                              \
            ValidateMap(rhs);                                                                                              \
            TYPE_OF(*(lhs)) UNPL(tmp) = *(lhs);                                                                            \
        do {                                                                                                               \
            ValidateMap(lhs);                                                                                              \
            ValidateMap(rhs);                                                                                              \
            TYPE_OF(*(lhs)) UNPL(tmp) = *(lhs);                                                                            \
            *(lhs)                    = *(rhs);                                                                            \
    #define MapInsertL(m, in_key, in_value)                                                                                \
        do {                                                                                                               \
            ValidateMap(m);                                                                                                \
            MAP_KEY_TYPE(m) *__hm_key_ptr_##__LINE__     = &(in_key);                                                      \
            MAP_VALUE_TYPE(m) *__hm_value_ptr_##__LINE__ = &(in_value);                                                    \
    #define MapInsertR(m, in_key, in_value)                                                                                \
        do {                                                                                                               \
            ValidateMap(m);                                                                                                \
            MAP_KEY_TYPE(m) __hm_key_tmp_##__LINE__     = (in_key);                                                        \
            MAP_VALUE_TYPE(m) __hm_value_tmp_##__LINE__ = (in_value);                                                      \
    #define MapSetFirstL(m, in_key, in_value)                                                                              \
        do {                                                                                                               \
            ValidateMap(m);                                                                                                \
            MAP_VALUE_TYPE(m) *__hm_value_ptr_##__LINE__ = &(in_value);                                                    \
            MAP_KEY_TYPE(m) __hm_key_tmp_##__LINE__      = (in_key);                                                       \
    #define MapSetFirstR(m, in_key, in_value)                                                                              \
        do {                                                                                                               \
            ValidateMap(m);                                                                                                \
            MAP_KEY_TYPE(m) __hm_key_tmp_##__LINE__     = (in_key);                                                        \
            MAP_VALUE_TYPE(m) __hm_value_tmp_##__LINE__ = (in_value);                                                      \
    #define MapSetOnlyL(m, in_key, in_value)                                                                               \
        do {                                                                                                               \
            ValidateMap(m);                                                                                                \
            MAP_KEY_TYPE(m) *__hm_key_ptr_##__LINE__     = &(in_key);                                                      \
            MAP_VALUE_TYPE(m) *__hm_value_ptr_##__LINE__ = &(in_value);                                                    \
    #define MapSetOnlyR(m, in_key, in_value)                                                                               \
        do {                                                                                                               \
            ValidateMap(m);                                                                                                \
            MAP_KEY_TYPE(m) __hm_key_tmp_##__LINE__     = (in_key);                                                        \
            MAP_VALUE_TYPE(m) __hm_value_tmp_##__LINE__ = (in_value);                                                      \
Last updated on