diff options
author | Dan McGee <dan@archlinux.org> | 2011-01-28 17:41:15 -0600 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2011-01-29 12:13:56 -0600 |
commit | ef86da97f54a90ee4ba3ba8ea7963135e7bae8ed (patch) | |
tree | 99c492d170d3780ac2530413031593cc248a8fd3 /lib | |
parent | 9b876fff09f2af10cba6824bec03d8fe3e167b5b (diff) | |
download | pacman-ef86da97f54a90ee4ba3ba8ea7963135e7bae8ed.tar.xz |
Remove need to explicitly register the local DB
Perform the cheap struct and string setup of the local DB at handle
initialization time to match the teardown we do when releasing the handle.
If the local DB is not needed, all real initialization is done lazily after
DB paths and other things have been configured anyway.
Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/libalpm/alpm.c | 4 | ||||
-rw-r--r-- | lib/libalpm/alpm.h | 2 | ||||
-rw-r--r-- | lib/libalpm/be_local.c | 7 | ||||
-rw-r--r-- | lib/libalpm/db.c | 15 |
4 files changed, 5 insertions, 23 deletions
diff --git a/lib/libalpm/alpm.c b/lib/libalpm/alpm.c index 2a9f4605..7c3bfc26 100644 --- a/lib/libalpm/alpm.c +++ b/lib/libalpm/alpm.c @@ -54,6 +54,10 @@ int SYMEXPORT alpm_initialize(void) if(handle == NULL) { RET_ERR(PM_ERR_MEMORY, -1); } + if(_alpm_db_register_local() == NULL) { + /* error code should be set */ + return(-1); + } #ifdef ENABLE_NLS bindtextdomain("libalpm", LOCALEDIR); diff --git a/lib/libalpm/alpm.h b/lib/libalpm/alpm.h index a540bc4f..95482f07 100644 --- a/lib/libalpm/alpm.h +++ b/lib/libalpm/alpm.h @@ -174,8 +174,6 @@ typedef enum _pmpkgreason_t { * Databases */ -/* Preferred interfaces db_register_local and db_register_sync */ -pmdb_t *alpm_db_register_local(void); pmdb_t *alpm_db_register_sync(const char *treename); int alpm_db_unregister(pmdb_t *db); int alpm_db_unregister_all(void); diff --git a/lib/libalpm/be_local.c b/lib/libalpm/be_local.c index ea59ceca..9602c825 100644 --- a/lib/libalpm/be_local.c +++ b/lib/libalpm/be_local.c @@ -400,7 +400,7 @@ static int local_db_populate(pmdb_t *db) pkg = _alpm_pkg_new(); if(pkg == NULL) { closedir(dbdir); - return(-1); + RET_ERR(PM_ERR_MEMORY, -1); } /* split the db entry name */ if(_alpm_splitname(name, pkg) != 0) { @@ -900,11 +900,6 @@ pmdb_t *_alpm_db_register_local(void) ALPM_LOG_FUNC; - if(handle->db_local != NULL) { - _alpm_log(PM_LOG_WARNING, _("attempt to re-register the 'local' DB\n")); - RET_ERR(PM_ERR_DB_NOT_NULL, NULL); - } - _alpm_log(PM_LOG_DEBUG, "registering local database\n"); db = _alpm_db_new("local", 1); diff --git a/lib/libalpm/db.c b/lib/libalpm/db.c index bf9a70d4..c80dcbb8 100644 --- a/lib/libalpm/db.c +++ b/lib/libalpm/db.c @@ -64,21 +64,6 @@ pmdb_t SYMEXPORT *alpm_db_register_sync(const char *treename) return(_alpm_db_register_sync(treename)); } -/** Register the local package database. - * @return a pmdb_t* representing the local database, or NULL on error - */ -pmdb_t SYMEXPORT *alpm_db_register_local(void) -{ - ALPM_LOG_FUNC; - - /* Sanity checks */ - ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, NULL)); - /* Do not register a database if a transaction is on-going */ - ASSERT(handle->trans == NULL, RET_ERR(PM_ERR_TRANS_NOT_NULL, NULL)); - - return(_alpm_db_register_local()); -} - /* Helper function for alpm_db_unregister{_all} */ void _alpm_db_unregister(pmdb_t *db) { |