summaryrefslogtreecommitdiff
path: root/src/del.c
diff options
context:
space:
mode:
authorTimo Teräs <timo.teras@iki.fi>2011-09-14 11:30:02 +0300
committerTimo Teräs <timo.teras@iki.fi>2011-09-14 11:30:35 +0300
commite34d2ed5fdec628936711517612a0fe643ed6d33 (patch)
tree2f4dc066ecfd77de2bd641793c6bb6d55c5c8511 /src/del.c
parentf95e7e585087aa6677978205f4ae8ebb9dfd1851 (diff)
downloadapk-tools-e34d2ed5fdec628936711517612a0fe643ed6d33.tar.gz
apk-tools-e34d2ed5fdec628936711517612a0fe643ed6d33.tar.bz2
apk-tools-e34d2ed5fdec628936711517612a0fe643ed6d33.tar.xz
apk-tools-e34d2ed5fdec628936711517612a0fe643ed6d33.zip
solver, db: run triggers in dependency order
fixes #738
Diffstat (limited to 'src/del.c')
-rw-r--r--src/del.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/del.c b/src/del.c
index 3d7ffe7..dff4356 100644
--- a/src/del.c
+++ b/src/del.c
@@ -142,7 +142,8 @@ static int del_main(void *pctx, struct apk_database *db, int argc, char **argv)
delete_from_world, ctx);
}
- r = apk_solver_solve(db, 0, ctx->world, &solution, &changeset);
+ r = apk_solver_solve(db, APK_SOLVERF_KEEP_STATE,
+ ctx->world, &solution, &changeset);
if (r == 0 || (apk_flags & APK_FORCE)) {
/* check for non-deleted package names */
for (i = 0; i < solution->num; i++) {
@@ -166,6 +167,7 @@ static int del_main(void *pctx, struct apk_database *db, int argc, char **argv)
} else {
apk_solver_print_errors(db, solution, ctx->world, r);
}
+ apk_solver_free(db);
apk_package_array_free(&solution);
apk_dependency_array_free(&ctx->world);