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;
 }

Reply via email to