diff --git a/libpkgconf/libpkgconf.h b/libpkgconf/libpkgconf.h index 27c5597..4634047 100644 --- a/libpkgconf/libpkgconf.h +++ b/libpkgconf/libpkgconf.h @@ -160,6 +160,8 @@ struct pkgconf_pkg_ { pkgconf_tuple_t *prefix; uint64_t serial; + + size_t hits; }; typedef bool (*pkgconf_pkg_iteration_func_t)(const pkgconf_pkg_t *pkg, void *data); diff --git a/libpkgconf/pkg.c b/libpkgconf/pkg.c index 443b59f..748f011 100644 --- a/libpkgconf/pkg.c +++ b/libpkgconf/pkg.c @@ -1473,6 +1473,7 @@ pkgconf_pkg_walk_list(pkgconf_client_t *client, if (pkgdep->serial == client->serial) { + pkgdep->hits++; pkgconf_pkg_unref(client, pkgdep); continue; } @@ -1485,6 +1486,7 @@ pkgconf_pkg_walk_list(pkgconf_client_t *client, pkgconf_audit_log_dependency(client, pkgdep, depnode); + pkgdep->hits++; pkgdep->serial = client->serial; eflags |= pkgconf_pkg_traverse_main(client, pkgdep, func, data, depth - 1, skip_flags); pkgconf_pkg_unref(client, pkgdep);