From ec2ade154289ce587eab3375445a33cad992c234 Mon Sep 17 00:00:00 2001 From: Timo Teras Date: Tue, 4 Aug 2009 13:57:54 +0300 Subject: state: fix world dependencies to be honored always previously they might have been skipped on certain situations. this also fixes some other reverse dependency enforcements and implements new "pending" state for locked name. --- src/cache.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/cache.c') diff --git a/src/cache.c b/src/cache.c index c961fc9..641cecd 100644 --- a/src/cache.c +++ b/src/cache.c @@ -29,12 +29,15 @@ static int cache_download(struct apk_database *db) struct apk_change *change; struct apk_package *pkg; char item[PATH_MAX], cacheitem[PATH_MAX]; - int i, r; + int i, r = 0; if (db->world == NULL) return 0; state = apk_state_new(db); + if (state == NULL) + goto err; + for (i = 0; i < db->world->num; i++) { r = apk_state_lock_dependency(state, &db->world->item[i]); if (r != 0) { @@ -65,7 +68,8 @@ static int cache_download(struct apk_database *db) } err: - apk_state_unref(state); + if (state != NULL) + apk_state_unref(state); return r; } -- cgit v1.2.3