lib/package_fulldeptree.c: also use the initial item from the hashtable
This commit is contained in:
@ -114,7 +114,7 @@ addDepn(struct item *item, struct item *xitem)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
add_deps_recursive(struct item *item)
|
add_deps_recursive(struct item *item, bool first)
|
||||||
{
|
{
|
||||||
struct depn *dep;
|
struct depn *dep;
|
||||||
xbps_string_t str;
|
xbps_string_t str;
|
||||||
@ -123,7 +123,10 @@ add_deps_recursive(struct item *item)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
for (dep = item->dbase; dep; dep = dep->dnext)
|
for (dep = item->dbase; dep; dep = dep->dnext)
|
||||||
add_deps_recursive(dep->item);
|
add_deps_recursive(dep->item, false);
|
||||||
|
|
||||||
|
if (first)
|
||||||
|
return;
|
||||||
|
|
||||||
str = xbps_string_create_cstring(item->pkgver);
|
str = xbps_string_create_cstring(item->pkgver);
|
||||||
assert(str);
|
assert(str);
|
||||||
@ -153,6 +156,12 @@ ordered_depends(struct xbps_handle *xhp, xbps_dictionary_t pkgd, bool rpool,
|
|||||||
|
|
||||||
pkgn = xbps_pkg_name(pkgver);
|
pkgn = xbps_pkg_name(pkgver);
|
||||||
assert(pkgn);
|
assert(pkgn);
|
||||||
|
item = lookupItem(pkgn);
|
||||||
|
if (item) {
|
||||||
|
add_deps_recursive(item, depth == 0);
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
|
||||||
item = addItem(rdeps, pkgn);
|
item = addItem(rdeps, pkgn);
|
||||||
item->pkgver = pkgver;
|
item->pkgver = pkgver;
|
||||||
assert(item);
|
assert(item);
|
||||||
@ -193,7 +202,7 @@ ordered_depends(struct xbps_handle *xhp, xbps_dictionary_t pkgd, bool rpool,
|
|||||||
}
|
}
|
||||||
xitem = lookupItem(curdepname);
|
xitem = lookupItem(curdepname);
|
||||||
if (xitem) {
|
if (xitem) {
|
||||||
add_deps_recursive(xitem);
|
add_deps_recursive(xitem, false);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
xitem = ordered_depends(xhp, curpkgd, rpool, depth+1);
|
xitem = ordered_depends(xhp, curpkgd, rpool, depth+1);
|
||||||
|
Reference in New Issue
Block a user