diff options
author | Dan McGee <dan@archlinux.org> | 2007-08-14 10:14:35 -0400 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2007-08-14 10:14:35 -0400 |
commit | a65ad4efc1102449a087b464d3b8d4670a614b99 (patch) | |
tree | 3131b4392641667c5d289d87eaccca976244aee1 /lib/libalpm/package.h | |
parent | 49c29e16b31ce35e81be210bc74a3834530bb9e0 (diff) | |
download | pacman-a65ad4efc1102449a087b464d3b8d4670a614b99.tar.xz |
package.h: implement origin_data union in pmpkg_t struct
We were using a void *data element in pmpkg_t before, which is unsafe by its
nature of being untyped. Reimplement data as origin_data being a union that
can hold either a path to a package file or a pointer to a cache database,
and make the other necesary updates in the code to reflect this. See package.h
for details.
Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'lib/libalpm/package.h')
-rw-r--r-- | lib/libalpm/package.h | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/lib/libalpm/package.h b/lib/libalpm/package.h index 41ab5f0d..1d3daafa 100644 --- a/lib/libalpm/package.h +++ b/lib/libalpm/package.h @@ -78,15 +78,14 @@ struct __pmpkg_t { alpm_list_t *provides; /* internal */ pmpkgfrom_t origin; - void *data; - /* TODO replace 'data' with this: + /* Replaced 'void *data' with this union as follows: origin == PKG_FROM_CACHE, use pkg->origin_data.db - origin == PKG_FROM_FILE, use pkg->origin_data.fd + origin == PKG_FROM_FILE, use pkg->origin_data.file + */ union { - int fd; pmdb_t *db; + char *file; } origin_data; - */ pmdbinfrq_t infolevel; }; |