commit: 50a0f2d7d36f11d079fd331a3bfbfaac53fe3d62
Author: Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Mon Feb 9 14:50:03 2026 +0000
Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Mon Feb 9 14:50:03 2026 +0000
URL: https://gitweb.gentoo.org/proj/portage-utils.git/commit/?id=50a0f2d7
libq/set: remove deprecated functions and their usage
Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>
libq/set.c | 48 +-----------------------------------------------
libq/set.h | 8 +++-----
main.c | 18 +++++++++---------
q.c | 20 ++++++++++----------
qkeyword.c | 11 +++++------
qlist.c | 4 ++--
qlop.c | 58 ++++++++++++++++++++++++----------------------------------
7 files changed, 54 insertions(+), 113 deletions(-)
diff --git a/libq/set.c b/libq/set.c
index 60d15553..4bcb8740 100644
--- a/libq/set.c
+++ b/libq/set.c
@@ -190,7 +190,7 @@ set_t *set_add_from_string
/* returns whether name is in set, and if so, the set-internal key
* representation (an internal copy of name made during addition) */
-const char *set_get_key
+const char *set_get
(
set_t *q,
const char *name
@@ -287,52 +287,6 @@ void *set_delete
return ret;
}
-/* DEPRECATED -- use set_keys()/hash_keys() */
-size_t array_set
-(
- set_t *q,
- array *ret
-)
-{
- set_elem_t *w;
- int i;
-
- /* allow using empty set */
- if (q == NULL)
- return 0;
-
- for (i = 0; i < _SET_HASH_SIZE; i++)
- {
- for (w = q->buckets[i]; w != NULL; w = w->next)
- array_append(ret, w->name);
- }
-
- return q->len;
-}
-
-/* DEPRECATED -- use hash_values() */
-size_t values_set
-(
- set_t *q,
- array *ret
-)
-{
- set_elem_t *w;
- int i;
-
- /* allow using empty set */
- if (q == NULL)
- return 0;
-
- for (i = 0; i < _SET_HASH_SIZE; i++)
- {
- for (w = q->buckets[i]; w != NULL; w = w->next)
- array_append(ret, w->val);
- }
-
- return q->len;
-}
-
size_t set_size
(
set_t *q
diff --git a/libq/set.h b/libq/set.h
index 4ca5e3b1..cb30832c 100644
--- a/libq/set.h
+++ b/libq/set.h
@@ -17,8 +17,8 @@ set_t *set_new(void);
set_t *set_add(set_t *s, const char *key);
set_t *set_add_unique(set_t *s, const char *key, bool *unique);
set_t *set_add_from_string(set_t *s, const char *buf);
-#define set_contains(S,K) (set_get_key(S,K) == NULL ? false : true)
-const char *set_get_key(set_t *s, const char *key);
+#define set_contains(S,K) (set_get(S,K) == NULL ? false : true)
+const char *set_get(set_t *s, const char *key);
void *set_delete(set_t *s, const char *key, bool *removed);
#define set_keys(S) hash_keys((hash_t *)S)
size_t set_size(set_t *s);
@@ -44,11 +44,9 @@ typedef struct set_ set;
#define add_set(K,S) set_add(S,K)
#define add_set_unique(K,S,U) set_add_unique(S,K,U)
#define add_set_value(K,V,P,S) hash_add((hash_t *)S,K,V,P)
-#define contains_set(K,S) set_get_key(S,K)
+#define contains_set(K,S) set_get(S,K)
#define get_set(K,S) hash_get((hash_t *)S,K)
#define del_set(K,S,R) set_delete(S,K,R)
-size_t array_set(set_t *q, array *ret); /* use hash_keys() */
-size_t values_set(set_t *q, array *ret); /* use hash_values() */
#define cnt_set(S) set_size(S)
#define clear_set(S) set_clear(S)
#define free_set(S) set_free(S)
diff --git a/main.c b/main.c
index 33b7d30c..c1e50c0f 100644
--- a/main.c
+++ b/main.c
@@ -443,7 +443,7 @@ read_portage_file(const char *file, enum portage_file_type
type, void *data)
char npath[_Q_PATH_MAX * 2];
int i;
env_vars *vars = data;
- set *masks = data;
+ hash_t *masks = data;
snprintf(npath, sizeof(npath), "%s%s", portroot, file + 1);
if ((dentslen = scandir(npath, &dents, NULL, alphasort)) > 0) {
@@ -581,7 +581,7 @@ read_portage_file(const char *file, enum portage_file_type
type, void *data)
* note that this only supports exact matches
(PMS
* 5.2.5) so we don't even have to parse and use
* atom-compare here */
- if ((p = del_set(buf + 1, masks, NULL)) != NULL)
+ if ((p = hash_delete(masks, buf + 1)) != NULL)
free(p);
} else {
void *e;
@@ -593,7 +593,7 @@ read_portage_file(const char *file, enum portage_file_type
type, void *data)
* which would never happen */
if (masks != NULL) {
p = xstrdup(npath);
- add_set_value(buf, p, &e, masks);
+ hash_add(masks, buf, p, &e);
if (e != NULL)
free(p);
}
@@ -712,7 +712,7 @@ overlay_from_path(const char *path)
/* Helper to recursively read stacked make.defaults in profiles */
static void
-read_portage_profile(const char *profile, env_vars vars[], set *masks)
+read_portage_profile(const char *profile, env_vars vars[], hash_t *masks)
{
char profile_file[_Q_PATH_MAX * 3];
char rpath[_Q_PATH_MAX];
@@ -851,7 +851,7 @@ env_vars vars_to_read[] = {
#undef _Q_EVS
#undef _Q_EVB
};
-set *package_masks = NULL;
+hash_t *package_masks = NULL;
/* Handle a single file in the repos.conf format. */
static void
@@ -1018,7 +1018,7 @@ initialize_portage_env(void)
env_vars *var;
size_t i;
- package_masks = create_set();
+ package_masks = hash_new();
/* figure out where to find our config files, we need to do this
* before handling the files, as it specifies where to find them */
@@ -1252,12 +1252,12 @@ initialize_portage_env(void)
fprintf(stderr, "%s = %s\n", var->name,
*var->value.s);
break;
case _Q_ISET: {
- array *vals = array_new();
- size_t n;
+ array *vals;
char *val;
+ size_t n;
fprintf(stderr, "%s = ", var->name);
- array_set(*var->value.t, vals);
+ vals = set_keys(*var->value.t);
array_for_each(vals, n, val) {
fprintf(stderr, "%s ", val);
}
diff --git a/q.c b/q.c
index 086824bb..5f3ed789 100644
--- a/q.c
+++ b/q.c
@@ -593,12 +593,12 @@ int q_main(int argc, char **argv)
printf("%s\"%s\"%s", RED,
*var->value.s, NORM);
break;
case _Q_ISET: {
- array *vals = array_new();
- size_t n;
+ array *vals;
char *val;
+ size_t n;
printf("%s\"", RED);
- array_set(*var->value.t, vals);
+ vals = set_keys(*var->value.t);
array_for_each(vals, n, val) {
printf("%s%s", n == 0 ?
"" : " ", val);
}
@@ -630,11 +630,11 @@ int q_main(int argc, char **argv)
printf("%s%s%s", RED,
*var->value.s, NORM);
break;
case _Q_ISET: {
- array *vals = array_new();
- size_t n;
+ array *vals;
char *val;
+ size_t n;
- array_set(*var->value.t, vals);
+ vals = set_keys(*var->value.t);
array_for_each(vals, n, val) {
printf("%s%s", n == 0 ?
RED : " ", val);
}
@@ -653,8 +653,8 @@ int q_main(int argc, char **argv)
}
if (print_masks) {
- array *masks = array_new();
- array *files = array_new();
+ array *masks;
+ array *files;
char *mask;
size_t n;
int j;
@@ -667,8 +667,8 @@ int q_main(int argc, char **argv)
depend_atom *atom;
depend_atom *qatom;
- array_set(package_masks, masks);
- values_set(package_masks, files);
+ masks = hash_keys(package_masks);
+ files = hash_values(package_masks);
array_for_each(masks, n, mask) {
if ((atom = atom_explode(mask)) == NULL)
diff --git a/qkeyword.c b/qkeyword.c
index 0f2151ec..fc637650 100644
--- a/qkeyword.c
+++ b/qkeyword.c
@@ -79,7 +79,7 @@ static array *archlist = NULL;
static size_t arch_longest_len;
static const char status[3] = {'-', '~', '+'};
static int qkeyword_test_arch = 0;
-static set *pmasks = NULL;
+static hash_t *pmasks = NULL;
enum { none = 0, testing, stable, minus };
@@ -248,7 +248,7 @@ qkeyword_kw(tree_pkg_ctx *pkg_ctx, void *priv, int what)
depend_atom *mask;
atom = tree_pkg_atom(pkg_ctx, false);
- masks = get_set(atom_format("%[CAT]%[PN]", atom), pmasks);
+ masks = hash_get(pmasks, atom_format("%[CAT]%[PN]", atom));
if (masks != NULL) {
array_for_each(masks, n, mask) {
if (atom_compare(atom, mask) == EQUAL) {
@@ -914,17 +914,16 @@ int qkeyword_main(int argc, char **argv)
char *mask;
depend_atom *atom;
- masks = array_new();
pmasks = create_set();
- array_set(package_masks, masks);
+ masks = hash_keys(package_masks);
array_for_each(masks, n, mask) {
if ((atom = atom_explode(mask)) == NULL)
continue;
bucket = array_new();
array_append(bucket, atom);
- pmasks = add_set_value(atom_format("%[CAT]%[PN]", atom),
- bucket,
(void **)&ebuck, pmasks);
+ pmasks = hash_add(pmasks, atom_format("%[CAT]%[PN]",
atom),
+ bucket, (void
**)&ebuck);
if (ebuck != NULL) {
array_append(ebuck, atom);
array_free(bucket);
diff --git a/qlist.c b/qlist.c
index 858d3695..48b8fe55 100644
--- a/qlist.c
+++ b/qlist.c
@@ -251,13 +251,13 @@ qlist_match(
}
if (applymasks) {
- array *masks = array_new();
+ array *masks;
depend_atom *matom;
char *mask;
size_t n;
bool match = false;
- array_set(package_masks, masks);
+ masks = hash_keys(package_masks);
array_for_each(masks, n, mask) {
if ((matom = atom_explode(mask)) == NULL)
diff --git a/qlop.c b/qlop.c
index eabf1ddc..486a366d 100644
--- a/qlop.c
+++ b/qlop.c
@@ -437,9 +437,9 @@ static int do_emerge_log(
depend_atom *upgrade_atom = NULL;
array *merge_matches = array_new();
array *unmerge_matches = array_new();
- set *merge_averages = create_set();
- set *unmerge_averages = create_set();
- set *atomset = NULL;
+ hash_t *merge_averages = hash_new();
+ hash_t *unmerge_averages = hash_new();
+ hash_t *atomset = NULL;
size_t i;
size_t parallel_emerge = 0;
bool all_atoms = false;
@@ -463,7 +463,7 @@ static int do_emerge_log(
all_atoms = array_cnt(atoms) == 0;
if (all_atoms || flags->show_lastmerge) {
- atomset = create_set();
+ atomset = hash_new();
/* assemble list of atoms */
while (fgets(buf, sizeof(buf), fp) != NULL) {
@@ -518,16 +518,15 @@ static int do_emerge_log(
* "valid" one, such that dummy emerge calls
(e.g.
* emerge -pv foo) are ignored */
if (last_merge != tstart_emerge) {
- array *vals = array_new();
+ array *vals = hash_values(atomset);
- values_set(atomset, vals);
array_deepfree(vals, (array_free_cb
*)atom_implode);
- clear_set(atomset);
+ hash_clear(atomset);
last_merge = tstart_emerge;
}
- atomset = add_set_value(afmt, atom, (void
**)&atomw, atomset);
+ atomset = hash_add(atomset, afmt, atom, (void
**)&atomw);
if (atomw != NULL)
atom_implode(atom);
}
@@ -782,7 +781,7 @@ static int do_emerge_log(
} else {
snprintf(afmt, sizeof(afmt), "%s/%s",
atom->CATEGORY,
atom->PN);
- atomw = get_set(afmt, atomset);
+ atomw = hash_get(atomset, afmt);
}
if (atomw == NULL) {
atom_implode(atom);
@@ -818,9 +817,8 @@ static int do_emerge_log(
pkgw->atom->CATEGORY, pkgw->atom->PN);
}
- merge_averages =
- add_set_value(afmt,
pkgw,
-
(void **)&pkg, merge_averages);
+ merge_averages =
hash_add(merge_averages,
+
afmt, pkgw, (void **)&pkg);
if (pkg != NULL) {
pkg->cnt++;
pkg->time += elapsed;
@@ -929,7 +927,7 @@ static int do_emerge_log(
} else {
snprintf(afmt, sizeof(afmt), "%s/%s",
atom->CATEGORY,
atom->PN);
- atomw = get_set(afmt, atomset);
+ atomw = hash_get(atomset, afmt);
}
if (atomw == NULL) {
atom_implode(atom);
@@ -965,9 +963,8 @@ static int do_emerge_log(
pkgw->atom->CATEGORY, pkgw->atom->PN);
}
- unmerge_averages =
- add_set_value(afmt,
pkgw,
-
(void **)&pkg, unmerge_averages);
+ unmerge_averages =
hash_add(unmerge_averages,
+
afmt, pkgw, (void **)&pkg);
if (pkg != NULL) {
pkg->cnt++;
pkg->time += elapsed;
@@ -1078,7 +1075,7 @@ static int do_emerge_log(
continue;
elapsed = tstart - pkgw->tbegin;
- pkg = get_set(afmt, merge_averages);
+ pkg = hash_get(merge_averages, afmt);
if (pkg != NULL) {
maxtime = pkg->time / pkg->cnt;
/* add 14% of the diff between avg and max, to
avoid
@@ -1140,7 +1137,7 @@ static int do_emerge_log(
continue;
elapsed = tstart - pkgw->tbegin;
- pkg = get_set(afmt, unmerge_averages);
+ pkg = hash_get(unmerge_averages, afmt);
if (pkg != NULL) {
maxtime = pkg->time / pkg->cnt;
if (elapsed >= maxtime) {
@@ -1175,9 +1172,8 @@ static int do_emerge_log(
size_t total_merges = 0;
size_t total_unmerges = 0;
time_t total_time = (time_t)0;
- array *avgs = array_new();
+ array *avgs = hash_values(merge_averages);
- values_set(merge_averages, avgs);
array_sort(avgs, pkg_sort_cb);
array_for_each(avgs, i, pkg) {
printf("%s: %s average for %s%zd%s merge%s\n",
@@ -1189,8 +1185,7 @@ static int do_emerge_log(
}
array_free(avgs);
- avgs = array_new();
- values_set(unmerge_averages, avgs);
+ avgs = hash_values(unmerge_averages);
array_sort(avgs, pkg_sort_cb);
array_for_each(avgs, i, pkg) {
printf("%s: %s average for %s%zd%s unmerge%s\n",
@@ -1227,13 +1222,12 @@ static int do_emerge_log(
printf("\n");
}
} else if (flags->do_predict) {
- array *avgs = array_new();
+ array *avgs = hash_values(merge_averages);
enum { P_INIT = 0, P_SREV, P_SRCH } pkgstate;
size_t j;
time_t ptime;
char found;
- values_set(merge_averages, avgs);
array_sort(avgs, pkg_sort_cb);
array_sort(atoms, atom_compar_cb);
@@ -1340,24 +1334,22 @@ static int do_emerge_log(
}
{
- array *t = array_new();
+ array *t = hash_values(merge_averages);
- values_set(merge_averages, t);
array_for_each(t, i, pkgw) {
atom_implode(pkgw->atom);
free(pkgw);
}
array_free(t);
- t = array_new();
- values_set(unmerge_averages, t);
+ t = hash_values(unmerge_averages);
array_for_each(t, i, pkgw) {
atom_implode(pkgw->atom);
free(pkgw);
}
array_free(t);
}
- free_set(merge_averages);
- free_set(unmerge_averages);
+ hash_free(merge_averages);
+ hash_free(unmerge_averages);
array_for_each_rev(merge_matches, i, pkgw)
atom_implode(pkgw->atom);
array_deepfree(merge_matches, NULL);
@@ -1365,11 +1357,9 @@ static int do_emerge_log(
atom_implode(pkgw->atom);
array_deepfree(unmerge_matches, NULL);
if (atomset != NULL) {
- array *t = array_new();
-
- values_set(atomset, t);
+ array *t = hash_values(atomset);
array_deepfree(t, (array_free_cb *)atom_implode);
- free_set(atomset);
+ hash_free(atomset);
}
return 0;
}