From dff2d916baac88b71dec0af81645ea2fe876cf6c Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Mon, 28 Mar 2011 12:54:47 -0500 Subject: Remove indirection on get_name and get_version operations For a package to be loaded from any of our backends, these two fields are always required upfront. Due to this fact, we don't need them to be backend-specific operations and can just refer to the field directly. Additionally, our static (and thus private) cache package accessors had a NULL check on pkg before returning the relevant field. Eliminate this since they only way they are ever called is via the packages attached callback struct, which would have caused the NULL pointer dereference in the first place. Signed-off-by: Dan McGee --- lib/libalpm/be_local.c | 19 ------------------- lib/libalpm/package.c | 8 ++------ lib/libalpm/package.h | 2 -- 3 files changed, 2 insertions(+), 27 deletions(-) diff --git a/lib/libalpm/be_local.c b/lib/libalpm/be_local.c index 788b3c6f..a60a0590 100644 --- a/lib/libalpm/be_local.c +++ b/lib/libalpm/be_local.c @@ -52,7 +52,6 @@ do { \ ALPM_LOG_FUNC; \ ASSERT(handle != NULL, return (errret)); \ - ASSERT(pkg != NULL, return (errret)); \ if(pkg->origin != PKG_FROM_FILE && !(pkg->infolevel & info)) { \ _alpm_local_db_read(pkg->origin_data.db, pkg, info); \ } \ @@ -71,18 +70,6 @@ static const char *_cache_get_filename(pmpkg_t *pkg) return pkg->filename; } -static const char *_cache_get_name(pmpkg_t *pkg) -{ - ASSERT(pkg != NULL, return NULL); - return pkg->name; -} - -static const char *_cache_get_version(pmpkg_t *pkg) -{ - ASSERT(pkg != NULL, return NULL); - return pkg->version; -} - static const char *_cache_get_desc(pmpkg_t *pkg) { LAZY_LOAD(INFRQ_DESC, NULL); @@ -161,7 +148,6 @@ static int _cache_has_scriptlet(pmpkg_t *pkg) /* Sanity checks */ ASSERT(handle != NULL, return -1); - ASSERT(pkg != NULL, return -1); if(!(pkg->infolevel & INFRQ_SCRIPTLET)) { _alpm_local_db_read(pkg->origin_data.db, pkg, INFRQ_SCRIPTLET); @@ -211,7 +197,6 @@ static alpm_list_t *_cache_get_files(pmpkg_t *pkg) /* Sanity checks */ ASSERT(handle != NULL, return NULL); - ASSERT(pkg != NULL, return NULL); if(pkg->origin == PKG_FROM_LOCALDB && !(pkg->infolevel & INFRQ_FILES)) { @@ -226,7 +211,6 @@ static alpm_list_t *_cache_get_backup(pmpkg_t *pkg) /* Sanity checks */ ASSERT(handle != NULL, return NULL); - ASSERT(pkg != NULL, return NULL); if(pkg->origin == PKG_FROM_LOCALDB && !(pkg->infolevel & INFRQ_FILES)) { @@ -247,7 +231,6 @@ static void *_cache_changelog_open(pmpkg_t *pkg) /* Sanity checks */ ASSERT(handle != NULL, return NULL); - ASSERT(pkg != NULL, return NULL); char clfile[PATH_MAX]; snprintf(clfile, PATH_MAX, "%s/%s/%s-%s/changelog", @@ -299,8 +282,6 @@ static int _cache_changelog_close(const pmpkg_t *pkg, void *fp) */ static struct pkg_operations local_pkg_ops = { .get_filename = _cache_get_filename, - .get_name = _cache_get_name, - .get_version = _cache_get_version, .get_desc = _cache_get_desc, .get_url = _cache_get_url, .get_builddate = _cache_get_builddate, diff --git a/lib/libalpm/package.c b/lib/libalpm/package.c index 59a1283b..3a4f23fd 100644 --- a/lib/libalpm/package.c +++ b/lib/libalpm/package.c @@ -99,8 +99,6 @@ int SYMEXPORT alpm_pkg_checkmd5sum(pmpkg_t *pkg) * a lazy-load cache. However, the defaults will work just fine for fully- * populated package structures. */ static const char *_pkg_get_filename(pmpkg_t *pkg) { return pkg->filename; } -static const char *_pkg_get_name(pmpkg_t *pkg) { return pkg->name; } -static const char *_pkg_get_version(pmpkg_t *pkg) { return pkg->version; } static const char *_pkg_get_desc(pmpkg_t *pkg) { return pkg->desc; } static const char *_pkg_get_url(pmpkg_t *pkg) { return pkg->url; } static time_t _pkg_get_builddate(pmpkg_t *pkg) { return pkg->builddate; } @@ -133,8 +131,6 @@ static int _pkg_changelog_close(const pmpkg_t *pkg, void *fp) { return EOF; } */ struct pkg_operations default_pkg_ops = { .get_filename = _pkg_get_filename, - .get_name = _pkg_get_name, - .get_version = _pkg_get_version, .get_desc = _pkg_get_desc, .get_url = _pkg_get_url, .get_builddate = _pkg_get_builddate, @@ -173,12 +169,12 @@ const char SYMEXPORT *alpm_pkg_get_filename(pmpkg_t *pkg) const char SYMEXPORT *alpm_pkg_get_name(pmpkg_t *pkg) { - return pkg->ops->get_name(pkg); + return pkg->name; } const char SYMEXPORT *alpm_pkg_get_version(pmpkg_t *pkg) { - return pkg->ops->get_version(pkg); + return pkg->version; } const char SYMEXPORT *alpm_pkg_get_desc(pmpkg_t *pkg) diff --git a/lib/libalpm/package.h b/lib/libalpm/package.h index 0b5f32d4..35e4500d 100644 --- a/lib/libalpm/package.h +++ b/lib/libalpm/package.h @@ -46,8 +46,6 @@ typedef enum _pmpkgfrom_t { */ struct pkg_operations { const char *(*get_filename) (pmpkg_t *); - const char *(*get_name) (pmpkg_t *); - const char *(*get_version) (pmpkg_t *); const char *(*get_desc) (pmpkg_t *); const char *(*get_url) (pmpkg_t *); time_t (*get_builddate) (pmpkg_t *); -- cgit v1.2.3-55-g3dc8