diff --git a/include/core/set.h b/include/core/set.h index 5f0be086..28b9b9eb 100644 --- a/include/core/set.h +++ b/include/core/set.h @@ -39,6 +39,11 @@ static inline void set_remove(struct set *set, unsigned int value) g_hash_table_remove(set->s_set, GUINT_TO_POINTER(value)); } +static inline void set_clear(struct set *set) +{ + g_hash_table_remove_all(set->s_set); +} + static inline bool set_has(const struct set *set, unsigned int value) { return g_hash_table_contains(set->s_set, GUINT_TO_POINTER(value)); diff --git a/tests/core/set.c b/tests/core/set.c index f783dbcf..d0b16d9d 100644 --- a/tests/core/set.c +++ b/tests/core/set.c @@ -37,6 +37,9 @@ void test_set() i += 2; } test_loop_passed(); + set_clear(&set); + test_equal(set_size(&set), 0); + set_deinit(&set); }