summaryrefslogtreecommitdiffstats
path: root/lib/libalpm/package.c
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2011-06-16 20:15:11 +0200
committerDan McGee <dan@archlinux.org>2011-06-22 19:31:12 +0200
commit54ef162a1a9e27e362732d873f0739bc0a2cf1bf (patch)
treee4ec6ba0ab94965c754a40d52a680f9fd69c4e37 /lib/libalpm/package.c
parent886a31ef205923fd5b29012ee75932a2e2dec4bd (diff)
downloadpacman-54ef162a1a9e27e362732d873f0739bc0a2cf1bf.tar.gz
pacman-54ef162a1a9e27e362732d873f0739bc0a2cf1bf.tar.xz
Convert backup list to new pmbackup_t type
This allows us to separate the name and hash elements in one place and not scatter different parsing code all over the place, including both the frontend and backend. Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'lib/libalpm/package.c')
-rw-r--r--lib/libalpm/package.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/libalpm/package.c b/lib/libalpm/package.c
index 0b0e9741..e99d5bd4 100644
--- a/lib/libalpm/package.c
+++ b/lib/libalpm/package.c
@@ -459,7 +459,9 @@ pmpkg_t *_alpm_pkg_dup(pmpkg_t *pkg)
newpkg->replaces = alpm_list_strdup(pkg->replaces);
newpkg->groups = alpm_list_strdup(pkg->groups);
newpkg->files = alpm_list_strdup(pkg->files);
- newpkg->backup = alpm_list_strdup(pkg->backup);
+ for(i = pkg->backup; i; i = alpm_list_next(i)) {
+ newpkg->backup = alpm_list_add(newpkg->backup, _alpm_backup_dup(i->data));
+ }
for(i = pkg->depends; i; i = alpm_list_next(i)) {
newpkg->depends = alpm_list_add(newpkg->depends, _alpm_dep_dup(i->data));
}
@@ -507,7 +509,8 @@ void _alpm_pkg_free(pmpkg_t *pkg)
FREELIST(pkg->replaces);
FREELIST(pkg->groups);
FREELIST(pkg->files);
- FREELIST(pkg->backup);
+ alpm_list_free_inner(pkg->backup, (alpm_list_fn_free)_alpm_backup_free);
+ alpm_list_free(pkg->backup);
alpm_list_free_inner(pkg->depends, (alpm_list_fn_free)_alpm_dep_free);
alpm_list_free(pkg->depends);
FREELIST(pkg->optdepends);