From 5c75a55c7df49fc43c968c2c09b49fabe9175730 Mon Sep 17 00:00:00 2001 From: Andrew Gregory Date: Wed, 7 Feb 2024 00:31:50 -0800 Subject: [PATCH] allow freeing partial db package cache The free function was checking DB_STATUS_PKGCACHE, which is only set once the package cache has been fully built. Signed-off-by: Andrew Gregory --- lib/libalpm/db.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/lib/libalpm/db.c b/lib/libalpm/db.c index 82b55215..7c541a0b 100644 --- a/lib/libalpm/db.c +++ b/lib/libalpm/db.c @@ -563,18 +563,17 @@ static void free_groupcache(alpm_db_t *db) void _alpm_db_free_pkgcache(alpm_db_t *db) { - if(db == NULL || !(db->status & DB_STATUS_PKGCACHE)) { + if(db == NULL || db->pkgcache == NULL) { return; } _alpm_log(db->handle, ALPM_LOG_DEBUG, "freeing package cache for repository '%s'\n", db->treename); - if(db->pkgcache) { - alpm_list_free_inner(db->pkgcache->list, - (alpm_list_fn_free)_alpm_pkg_free); - _alpm_pkghash_free(db->pkgcache); - } + alpm_list_free_inner(db->pkgcache->list, + (alpm_list_fn_free)_alpm_pkg_free); + _alpm_pkghash_free(db->pkgcache); + db->pkgcache = NULL; db->status &= ~DB_STATUS_PKGCACHE; free_groupcache(db);