commit:     4dc16c6cfcf2c3a4d2a439ee93999a4cd1864af2
Author:     Joakim Tjernlund <joakim.tjernlund <AT> infinera <DOT> com>
AuthorDate: Tue May 14 16:58:18 2019 +0000
Commit:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Thu May 16 17:10:37 2019 +0000
URL:        https://gitweb.gentoo.org/proj/portage-utils.git/commit/?id=4dc16c6c

qmerge: ensure we respect SLOT while finding candidate package to unmerge

Signed-off-by: Joakim Tjernlund <joakim.tjernlund <AT> infinera.com>
Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>

 qmerge.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/qmerge.c b/qmerge.c
index 9ff7f28..a558701 100644
--- a/qmerge.c
+++ b/qmerge.c
@@ -1358,12 +1358,12 @@ pkg_merge(int level, const depend_atom *atom, const 
struct pkg_t *pkg)
                pkg_ctx = tree_next_pkg(cat_ctx);
                if (!pkg_ctx)
                        break;
-
-               old_atom = atom_explode(pkg_ctx->name);
-               /* This cast sucks, but we know for now the field isn't 
modified */
-               old_atom->CATEGORY = (char *)cat_ctx->name;
+               old_atom = tree_get_atom(pkg_ctx, 1);  /* retrieve SLOT */
+               if (!old_atom)
+                       goto next_pkg;
+               old_atom->SUBSLOT = NULL;  /* just match SLOT */
+               old_atom->REPO = NULL;     /* REPO never matters, TODO 
atom_compare */
                ret = atom_compare(atom, old_atom);
-               atom_implode(old_atom);
                switch (ret) {
                        case NEWER:
                        case OLDER:

Reply via email to