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

Reply via email to