Fixing missing flag for treemap and treeset
This commit is contained in:
1 parent
e1c736ab46
commit
277139656e
6 files changed
+18
No files matched your search
@@ -415,7 +415,10 @@ static const char *cmc_string_fmt_treemap = "struct %s<%s, %s> "
|
||||
else if (_map_->f_key->cmp(scan->key, key) < 0) \
|
||||
scan = scan->right; \
|
||||
else \
|
||||
{ \
|
||||
_map_->flag = cmc_flags.DUPLICATE; \
|
||||
return false; \
|
||||
} \
|
||||
} \
|
||||
\
|
||||
struct SNAME##_node *node; \
|
||||
|
||||
@@ -397,7 +397,10 @@ static const char *cmc_string_fmt_treeset = "struct %s<%s> "
|
||||
else if (_set_->f_val->cmp(scan->value, element) < 0) \
|
||||
scan = scan->right; \
|
||||
else \
|
||||
{ \
|
||||
_set_->flag = cmc_flags.DUPLICATE; \
|
||||
return false; \
|
||||
} \
|
||||
} \
|
||||
\
|
||||
struct SNAME##_node *node; \
|
||||
|
||||
@@ -237,7 +237,10 @@ _Bool tm_insert(struct treemap *_map_, size_t key, size_t value)
|
||||
else if (_map_->f_key->cmp(scan->key, key) < 0)
|
||||
scan = scan->right;
|
||||
else
|
||||
{
|
||||
_map_->flag = cmc_flags.DUPLICATE;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
struct treemap_node *node;
|
||||
if (_map_->f_key->cmp(parent->key, key) > 0)
|
||||
|
||||
@@ -229,7 +229,10 @@ _Bool ts_insert(struct treeset *_set_, size_t element)
|
||||
else if (_set_->f_val->cmp(scan->value, element) < 0)
|
||||
scan = scan->right;
|
||||
else
|
||||
{
|
||||
_set_->flag = cmc_flags.DUPLICATE;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
struct treeset_node *node;
|
||||
if (_set_->f_val->cmp(parent->value, element) > 0)
|
||||
|
||||
@@ -64,6 +64,9 @@ CMC_CREATE_UNIT(treemap_test, true, {
|
||||
cmc_assert(tm_insert(map, 1, 1));
|
||||
cmc_assert_equals(int32_t, cmc_flags.OK, tm_flag(map));
|
||||
|
||||
cmc_assert(!tm_insert(map, 1, 2));
|
||||
cmc_assert_equals(int32_t, cmc_flags.DUPLICATE, tm_flag(map));
|
||||
|
||||
// update
|
||||
cmc_assert(!tm_update(map, 2, 2, NULL));
|
||||
cmc_assert_equals(int32_t, cmc_flags.NOT_FOUND, tm_flag(map));
|
||||
|
||||
@@ -56,6 +56,9 @@ CMC_CREATE_UNIT(treeset_test, true, {
|
||||
cmc_assert(ts_insert(set, 1));
|
||||
cmc_assert_equals(int32_t, cmc_flags.OK, ts_flag(set));
|
||||
|
||||
cmc_assert(!ts_insert(set, 1));
|
||||
cmc_assert_equals(int32_t, cmc_flags.DUPLICATE, ts_flag(set));
|
||||
|
||||
// remove
|
||||
cmc_assert(!ts_remove(set, 2));
|
||||
cmc_assert_equals(int32_t, cmc_flags.NOT_FOUND, ts_flag(set));
|
||||
|
||||
Reference in new issue
Block a user