do not free the cache right before using it!

This commit is contained in:
Aurelien Foret 2005-10-22 08:29:12 +00:00
parent fa627d4776
commit 5d5d7d6339
1 changed files with 10 additions and 14 deletions

View File

@ -282,25 +282,21 @@ int alpm_db_update(PM_DB *db, char *archive, char *ts)
}
}
if(stat(archive, &buf)) {
/* not found */
RET_ERR(PM_ERR_NOT_A_FILE, -1);
/* remove the old dir */
_alpm_log(PM_LOG_FLOW2, "flushing database %s/%s", handle->dbpath, db->treename);
for(lp = db_get_pkgcache(db); lp; lp = lp->next) {
if(db_remove(db, lp->data) == -1) {
if(lp->data) {
_alpm_log(PM_LOG_ERROR, "could not remove database entry %s/%s", db->treename,
((pmpkg_t *)lp->data)->name);
}
RET_ERR(PM_ERR_XXX, -1);
}
}
/* Cache needs to be rebuild */
db_free_pkgcache(db);
/* remove the old dir */
_alpm_log(PM_LOG_FLOW2, "removing database %s/%s", handle->dbpath, db->treename);
for(lp = alpm_db_getpkgcache(db); lp; lp = alpm_list_next(lp)) {
db_remove(db, alpm_list_getdata(lp));
}
/* make the new dir */
if(db_create(handle->root, handle->dbpath, db->treename) != 0) {
RET_ERR(PM_ERR_DB_CREATE, -1);
}
/* uncompress the sync database */
/* ORE
we should not simply unpack the archive, but better parse it and