mirror of
https://github.com/labwc/labwc.git
synced 2026-02-09 10:07:31 -05:00
This is a common practice in C projects, which simply enforces that each header must compile cleanly without implicit dependencies on other headers (see also the previous commit).
39 lines
719 B
C
39 lines
719 B
C
// SPDX-License-Identifier: GPL-2.0-only
|
|
#include "common/set.h"
|
|
#include <wlr/util/log.h>
|
|
|
|
bool
|
|
lab_set_contains(struct lab_set *set, uint32_t value)
|
|
{
|
|
for (int i = 0; i < set->size; ++i) {
|
|
if (set->values[i] == value) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
void
|
|
lab_set_add(struct lab_set *set, uint32_t value)
|
|
{
|
|
if (lab_set_contains(set, value)) {
|
|
return;
|
|
}
|
|
if (set->size >= LAB_SET_MAX_SIZE) {
|
|
wlr_log(WLR_ERROR, "lab_set size exceeded");
|
|
return;
|
|
}
|
|
set->values[set->size++] = value;
|
|
}
|
|
|
|
void
|
|
lab_set_remove(struct lab_set *set, uint32_t value)
|
|
{
|
|
for (int i = 0; i < set->size; ++i) {
|
|
if (set->values[i] == value) {
|
|
--set->size;
|
|
set->values[i] = set->values[set->size];
|
|
return;
|
|
}
|
|
}
|
|
}
|