Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=918deafe0231e89928fa656f43577ef769304c3f
commit 918deafe0231e89928fa656f43577ef769304c3f Author: Michel Hermier <[email protected]> Date: Wed Sep 3 09:00:26 2014 +0200 libpaccman: Make Handle::dbs_sync not a pointer. diff --git a/lib/libpacman/deps.cpp b/lib/libpacman/deps.cpp index 195ce16..efda819 100644 --- a/lib/libpacman/deps.cpp +++ b/lib/libpacman/deps.cpp @@ -559,9 +559,8 @@ int _pacman_resolvedeps(pmtrans_t *trans, Package *syncpkg, FPtrList *list, FPtrList *targ = f_ptrlist_new(); FPtrList *deps = NULL; Handle *handle = trans->m_handle; - FPtrList *dbs_sync = handle->dbs_sync; - if(dbs_sync == NULL || syncpkg == NULL) { + if(handle->dbs_sync.empty() || syncpkg == NULL) { return(-1); } @@ -593,11 +592,11 @@ int _pacman_resolvedeps(pmtrans_t *trans, Package *syncpkg, FPtrList *list, /* find the package in one of the repositories */ /* check literals */ - for(auto j = dbs_sync->begin(), j_end = dbs_sync->end(); !ps && j != j_end; j = j->next()) { + for(auto j = handle->dbs_sync.begin(), j_end = handle->dbs_sync.end(); !ps && j != j_end; j = j->next()) { ps = ((Database *)f_ptrlistitem_data(j))->find(miss->depend.name); } /* check provides */ - for(auto j = dbs_sync->begin(), j_end = dbs_sync->end(); !ps && j != j_end; j = j->next()) { + for(auto j = handle->dbs_sync.begin(), j_end = handle->dbs_sync.end(); !ps && j != j_end; j = j->next()) { FPtrList *provides; provides = ((Database *)f_ptrlistitem_data(j))->whatPackagesProvide(miss->depend.name); if(provides) { diff --git a/lib/libpacman/handle.cpp b/lib/libpacman/handle.cpp index bbaae2d..46cb16f 100644 --- a/lib/libpacman/handle.cpp +++ b/lib/libpacman/handle.cpp @@ -106,7 +106,7 @@ Handle::~Handle() free(logfile); free(proxyhost); free(xfercommand); - FREELIST(dbs_sync); + dbs_sync.clear(/* free */); } int Handle::lock() @@ -156,7 +156,7 @@ Database *Handle::createDatabase(const char *treename, pacman_cb_db_register cal if(strcmp(treename, "local") == 0) { db_local = db; } else { - dbs_sync = dbs_sync->add(db); + dbs_sync.add(db); } return(db); } @@ -167,7 +167,7 @@ Database *Handle::getDatabase(const char *treename) return db_local; } - for(auto i = dbs_sync->begin(), end = dbs_sync->end(); i != end; i = i->next()) { + for(auto i = dbs_sync.begin(), end = dbs_sync.end(); i != end; i = i->next()) { Database *sdb = (Database *)f_ptrlistitem_data(i); if(strcmp(treename, sdb->treename()) == 0) { return sdb; diff --git a/lib/libpacman/handle.h b/lib/libpacman/handle.h index 4fc4a50..397a75f 100644 --- a/lib/libpacman/handle.h +++ b/lib/libpacman/handle.h @@ -63,7 +63,7 @@ public: pmaccess_t access; uid_t uid; libpacman::Database *db_local; - FPtrList *dbs_sync; /* List of (libpacman::Database *) */ + FPtrList dbs_sync; /* List of (libpacman::Database *) */ FILE *logfd; FFileLock *filelock; pmtrans_t *trans; diff --git a/lib/libpacman/pacman.cpp b/lib/libpacman/pacman.cpp index 40be7bc..fc5b622 100644 --- a/lib/libpacman/pacman.cpp +++ b/lib/libpacman/pacman.cpp @@ -116,9 +116,9 @@ int pacman_release(void) pacman_db_unregister(c_cast(handle->db_local)); } /* and also sync ones */ - while(!handle->dbs_sync->empty()) { + while(!handle->dbs_sync.empty()) { /* db_unregister() will also update the handle->dbs_sync list */ - pacman_db_unregister(f_ptrlistitem_data(handle->dbs_sync->begin())); + pacman_db_unregister(f_ptrlistitem_data(handle->dbs_sync.begin())); } if(handle->unlock() != 0) { @@ -360,7 +360,7 @@ int pacman_get_option(unsigned char parm, long *data) case PM_OPT_CACHEDIR: *data = (long)handle->cachedir; break; case PM_OPT_HOOKSDIR: *data = (long)handle->hooksdir; break; case PM_OPT_LOCALDB: *data = (long)handle->db_local; break; - case PM_OPT_SYNCDB: *data = (long)handle->dbs_sync; break; + case PM_OPT_SYNCDB: *data = (long)&handle->dbs_sync; break; case PM_OPT_LOGFILE: *data = (long)handle->logfile; break; case PM_OPT_NOUPGRADE: *data = (long)&handle->noupgrade; break; case PM_OPT_NOEXTRACT: *data = (long)&handle->noextract; break; @@ -430,7 +430,7 @@ int pacman_db_unregister(pmdb_t *_db) handle->db_local = NULL; found = 1; } else { - if(_pacman_list_remove(handle->dbs_sync, db, f_ptrcmp, NULL)) { + if(_pacman_list_remove(&handle->dbs_sync, db, f_ptrcmp, NULL)) { found = 1; } } diff --git a/lib/libpacman/trans.cpp b/lib/libpacman/trans.cpp index 6d9a52b..50437d1 100644 --- a/lib/libpacman/trans.cpp +++ b/lib/libpacman/trans.cpp @@ -241,7 +241,7 @@ static int check_olddelay(Handle *handle) return(0); } - for(auto i = handle->dbs_sync->begin(), end = handle->dbs_sync->end(); i != end; i = i->next()) { + for(auto i = handle->dbs_sync.begin(), end = handle->dbs_sync.end(); i != end; i = i->next()) { Database *db = f_ptrlistitem_data(i); if(db->gettimestamp(&tm) == -1) { continue; @@ -296,7 +296,6 @@ int __pmtrans_t::add(const char *target, pmtranstype_t type, int flags) { Package *pkg_new, *pkg_local, *pkg_queued = NULL; Database *db_local; - FPtrList *dbs_sync = m_handle->dbs_sync; /* Sanity checks */ ASSERT((db_local = m_handle->db_local) != NULL, RET_ERR(PM_ERR_DB_NULL, -1)); @@ -318,7 +317,7 @@ int __pmtrans_t::add(const char *target, pmtranstype_t type, int flags) if(targ) { *targ = '\0'; targ++; - for(auto i = dbs_sync->begin(), end = dbs_sync->end(); i != end && !spkg; i = i->next()) { + for(auto i = m_handle->dbs_sync.begin(), end = m_handle->dbs_sync.end(); i != end && !spkg; i = i->next()) { Database *dbs = f_ptrlistitem_data(i); if(strcmp(dbs->treename(), targline) == 0) { spkg = dbs->find(targ); @@ -338,14 +337,14 @@ int __pmtrans_t::add(const char *target, pmtranstype_t type, int flags) } } else { targ = targline; - for(auto i = dbs_sync->begin(), end = dbs_sync->end(); i != end && !spkg; i = i->next()) { + for(auto i = m_handle->dbs_sync.begin(), end = m_handle->dbs_sync.end(); i != end && !spkg; i = i->next()) { Database *dbs = f_ptrlistitem_data(i); spkg = dbs->find(targ); } if(spkg == NULL) { /* Search provides */ _pacman_log(PM_LOG_FLOW2, _("target '%s' not found -- looking for provisions"), targ); - for(auto i = dbs_sync->begin(), end = dbs_sync->end(); i != end && !spkg; i = i->next()) { + for(auto i = m_handle->dbs_sync.begin(), end = m_handle->dbs_sync.end(); i != end && !spkg; i = i->next()) { Database *dbs = f_ptrlistitem_data(i); FPtrList *p = dbs->whatPackagesProvide(targ); if(p != NULL) { @@ -1439,7 +1438,7 @@ int __pmtrans_t::commit(FPtrList **data) retval = 0; FREELIST(*data); int done = 1; - for(auto i = m_handle->dbs_sync->begin(), end = m_handle->dbs_sync->end(); i != end; i = i->next()) { + for(auto i = m_handle->dbs_sync.begin(), end = m_handle->dbs_sync.end(); i != end; i = i->next()) { struct stat buf; Database *current = f_ptrlistitem_data(i); diff --git a/lib/libpacman/trans_sysupgrade.cpp b/lib/libpacman/trans_sysupgrade.cpp index 8b55d2f..f4fb2c5 100644 --- a/lib/libpacman/trans_sysupgrade.cpp +++ b/lib/libpacman/trans_sysupgrade.cpp @@ -71,20 +71,18 @@ int _pacman_trans_sysupgrade(pmtrans_t *trans) { Handle *handle; Database *db_local; - FPtrList *dbs_sync; /* Sanity checks */ ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1)); ASSERT((handle = trans->m_handle) != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1)); ASSERT((db_local = handle->db_local) != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1)); - ASSERT((dbs_sync = handle->dbs_sync) != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1)); /* this is a sysupgrade, so that install reasons are not touched */ handle->sysupgrade = 1; /* check for "recommended" package replacements */ _pacman_log(PM_LOG_FLOW1, _("checking for package replacements")); - for(auto i = dbs_sync->begin(), end = dbs_sync->end(); i != end; i = i->next()) { + for(auto i = handle->dbs_sync.begin(), end = handle->dbs_sync.end(); i != end; i = i->next()) { FPtrList &cache = _pacman_db_get_pkgcache(f_ptrlistitem_data(i)); for(auto j = cache.begin(), end = cache.end(); j != end; j = j->next()) { Package *spkg = f_ptrlistitem_data(j); @@ -143,7 +141,7 @@ int _pacman_trans_sysupgrade(pmtrans_t *trans) Package *spkg = NULL; pmsyncpkg_t *ps; - for(auto j = dbs_sync->begin(), end = dbs_sync->end(); !spkg && j != end; j = j->next()) { + for(auto j = handle->dbs_sync.begin(), end = handle->dbs_sync.end(); !spkg && j != end; j = j->next()) { spkg = ((Database *)f_ptrlistitem_data(j))->find(local->name()); } if(spkg == NULL) { _______________________________________________ Frugalware-git mailing list [email protected] http://frugalware.org/mailman/listinfo/frugalware-git
