Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=fd3b41734206f2607917fcd1663ccae1236af491

commit fd3b41734206f2607917fcd1663ccae1236af491
Author: Michel Hermier <[email protected]>
Date:   Thu Sep 4 08:13:03 2014 +0200

libpacman: Make Package::requiredby not a pointer.

diff --git a/lib/libpacman/db/localdb_files.cpp 
b/lib/libpacman/db/localdb_files.cpp
index 0adf851..4c38cd3 100644
--- a/lib/libpacman/db/localdb_files.cpp
+++ b/lib/libpacman/db/localdb_files.cpp
@@ -208,7 +208,7 @@ int _pacman_localdb_depends_fread(Package *info, FILE *fp)
if(!strcmp(line, "%DEPENDS%")) {
_pacman_db_read_lines(info->m_depends, line, sline, fp);
} else if(!strcmp(line, "%REQUIREDBY%")) {
-                       _pacman_db_read_lines(&info->m_requiredby, line, sline, 
fp);
+                       _pacman_db_read_lines(info->m_requiredby, line, sline, 
fp);
} else if(!strcmp(line, "%CONFLICTS%")) {
_pacman_db_read_lines(&info->m_conflicts, line, sline, fp);
} else if(!strcmp(line, "%PROVIDES%")) {
diff --git a/lib/libpacman/deps.cpp b/lib/libpacman/deps.cpp
index 9745126..2b46ce7 100644
--- a/lib/libpacman/deps.cpp
+++ b/lib/libpacman/deps.cpp
@@ -235,8 +235,8 @@ FPtrList *_pacman_checkdeps(pmtrans_t *trans, unsigned char 
op, FPtrList *packag

if(pkg_local != NULL) {
found = 0;
-                       FStringList *requiredby = pkg_local->requiredby();
-                       for(auto j = requiredby->begin(), j_end = 
requiredby->end(); j != j_end; j = j->next()) {
+                       auto &requiredby = pkg_local->requiredby();
+                       for(auto j = requiredby.begin(), j_end = 
requiredby.end(); j != j_end; j = j->next()) {
const char *requiredby_name = f_stringlistitem_to_str(j);

if(op == PM_TRANS_TYPE_UPGRADE) {
@@ -523,8 +523,8 @@ FPtrList *_pacman_removedeps(Database *db, FPtrList *targs)
}

/* see if other packages need it */
-                       auto requiredby = dep->requiredby();
-                       for(auto k = requiredby->begin(), k_end = 
requiredby->end(); k != k_end && !needed; k = k->next()) {
+                       auto &requiredby = dep->requiredby();
+                       for(auto k = requiredby.begin(), k_end = 
requiredby.end(); k != k_end && !needed; k = k->next()) {
Package *dummy = db->find(f_stringlistitem_to_str(k));
if(!_pacman_pkg_isin(dummy->name(), targs)) {
needed = 1;
diff --git a/lib/libpacman/package.cpp b/lib/libpacman/package.cpp
index 2fa16d3..1015108 100644
--- a/lib/libpacman/package.cpp
+++ b/lib/libpacman/package.cpp
@@ -71,7 +71,6 @@ Package::~Package()
FREELIST(desc_localized);
FREELIST(m_files);
FREELIST(m_conflicts);
-       FREELIST(m_requiredby);
FREELIST(m_groups);
FREELIST(m_provides);
FREELIST(m_replaces);
@@ -329,7 +328,7 @@ int _pacman_strmatcher_match(const FStrMatcher *strmatcher, 
Package *pkg, int fl
((flags & PM_PACKAGE_FLAG_BACKUP) && f_stringlist_any_match(&pkg->backup(), 
strmatcher)) ||
((flags & PM_PACKAGE_FLAG_DEPENDS) && f_stringlist_any_match(&pkg->depends(), 
strmatcher)) ||
((flags & PM_PACKAGE_FLAG_REMOVES) && f_stringlist_any_match(&pkg->removes(), 
strmatcher)) ||
-                       ((flags & PM_PACKAGE_FLAG_REQUIREDBY) && 
f_stringlist_any_match(pkg->requiredby(), strmatcher)) ||
+                       ((flags & PM_PACKAGE_FLAG_REQUIREDBY) && 
f_stringlist_any_match(&pkg->requiredby(), strmatcher)) ||
((flags & PM_PACKAGE_FLAG_CONFLICTS) && 
f_stringlist_any_match(pkg->conflicts(), strmatcher)) ||
((flags & PM_PACKAGE_FLAG_PROVIDES) && f_stringlist_any_match(pkg->provides(), 
strmatcher)) ||
((flags & PM_PACKAGE_FLAG_TRIGGERS) && f_stringlist_any_match(pkg->triggers(), 
strmatcher))) {
diff --git a/lib/libpacman/package.h b/lib/libpacman/package.h
index 605ebcd..d1bca2c 100644
--- a/lib/libpacman/package.h
+++ b/lib/libpacman/package.h
@@ -158,7 +158,7 @@ public:
FStringList m_backup;
FStringList m_depends;
FStringList m_removes;
-       FStringList *m_requiredby;
+       FStringList m_requiredby;
FStringList *m_conflicts;
FStringList *m_provides;
FStringList *m_triggers;
diff --git a/lib/libpacman/package_properties.h 
b/lib/libpacman/package_properties.h
index f4b19d5..acbfc92 100644
--- a/lib/libpacman/package_properties.h
+++ b/lib/libpacman/package_properties.h
@@ -31,7 +31,7 @@ LIBPACMAN_PACKAGE_PROPERTY(FStringList *, provides,   
PROVIDES  )
LIBPACMAN_PACKAGE_PROPERTY(unsigned char, reason,     REASON    )
LIBPACMAN_PACKAGE_PROPERTY(FStringList &, removes,    REMOVES   )
LIBPACMAN_PACKAGE_PROPERTY(FStringList *, replaces,   REPLACES  )
-LIBPACMAN_PACKAGE_PROPERTY(FStringList *, requiredby, REQUIREDBY)
+LIBPACMAN_PACKAGE_PROPERTY(FStringList &, requiredby, REQUIREDBY)
LIBPACMAN_PACKAGE_PROPERTY(unsigned char, stick,      STICKY    )
LIBPACMAN_PACKAGE_PROPERTY(FStringList *, triggers,   TRIGGERS  )
LIBPACMAN_PACKAGE_PROPERTY(const char *,  url,        URL       )
diff --git a/lib/libpacman/pacman.cpp b/lib/libpacman/pacman.cpp
index 44dc7b8..9eb3890 100644
--- a/lib/libpacman/pacman.cpp
+++ b/lib/libpacman/pacman.cpp
@@ -815,7 +815,7 @@ void *pacman_pkg_getinfo(pmpkg_t *_pkg, unsigned char parm)
case PM_PKG_SHA1SUM:     data = pkg->sha1sum; break;
case PM_PKG_DEPENDS:     data = &pkg->depends(); break;
case PM_PKG_REMOVES:     data = &pkg->removes(); break;
-               case PM_PKG_REQUIREDBY:  data = pkg->requiredby(); break;
+               case PM_PKG_REQUIREDBY:  data = &pkg->requiredby(); break;
case PM_PKG_PROVIDES:    data = pkg->provides(); break;
case PM_PKG_CONFLICTS:   data = pkg->conflicts(); break;
case PM_PKG_FILES:       data = pkg->files(); break;
diff --git a/lib/libpacman/trans.cpp b/lib/libpacman/trans.cpp
index 597b513..566ff57 100644
--- a/lib/libpacman/trans.cpp
+++ b/lib/libpacman/trans.cpp
@@ -700,7 +700,7 @@ int __pmtrans_t::prepare(FPtrList **data)
ret = -1;
goto cleanup;
}
-                                                       q->m_requiredby = 
_pacman_list_strdup(local->requiredby());
+                                                       q->m_requiredby = 
local->requiredby();
if(ps->type != PM_SYNC_TYPE_REPLACE) {
/* switch this sync type to REPLACE */
ps->type = PM_SYNC_TYPE_REPLACE;
@@ -1625,9 +1625,9 @@ int __pmtrans_t::commit(FPtrList **data)
for(auto j = list->begin(), end = list->end(); j != end; j = j->next()) {
Package *old = f_ptrlistitem_data(j);
/* merge lists */
-                                       FPtrList *requiredby = 
old->requiredby();
-                                       for(auto k = requiredby->begin(), end = 
requiredby->end(); k != end; k = k->next()) {
-                                               
if(!_pacman_list_is_strin(f_stringlistitem_to_str(k), pkg_new->requiredby())) {
+                                       auto &requiredby = old->requiredby();
+                                       for(auto k = requiredby.begin(), end = 
requiredby.end(); k != end; k = k->next()) {
+                                               
if(!_pacman_list_is_strin(f_stringlistitem_to_str(k), &pkg_new->requiredby())) {
/* replace old's name with new's name in the requiredby's dependency list */
Package *depender = db_local->find(f_stringlistitem_to_str(k));
if(depender == NULL) {
@@ -1649,7 +1649,7 @@ int __pmtrans_t::commit(FPtrList **data)
pkg_new->name(), pkg_new->version());
}
/* add the new requiredby */
-                                                       pkg_new->m_requiredby = 
f_stringlist_add(pkg_new->m_requiredby, f_stringlistitem_to_str(k));
+                                                       
f_stringlist_add(&pkg_new->m_requiredby, f_stringlistitem_to_str(k));
}
}
}
@@ -1812,7 +1812,7 @@ int __pmtrans_t::commit(FPtrList **data)
}
}
/* splice out this entry from requiredby */
-                       _pacman_list_remove(depinfo->requiredby(), 
pkg_local->name(), str_cmp, (void **)&data);
+                       _pacman_list_remove(&depinfo->requiredby(), 
pkg_local->name(), str_cmp, (void **)&data);
FREE(data);
_pacman_log(PM_LOG_DEBUG, _("updating 'requiredby' field for package '%s'"), 
depinfo->name());
if(db_local->write(depinfo, INFRQ_DEPENDS)) {
@@ -1856,7 +1856,7 @@ int __pmtrans_t::commit(FPtrList **data)
}
if(f_ptrlistitem_data(tmppm) && (!strcmp(depend.name, pkg_new->name()) || 
pkg_new->provides(depend.name))) {
_pacman_log(PM_LOG_DEBUG, _("adding '%s' in requiredby field for '%s'"), 
tmpp->name(), pkg_new->name());
-                                       pkg_new->m_requiredby = 
f_stringlist_add(pkg_new->m_requiredby, tmpp->name());
+                                       
f_stringlist_add(&pkg_new->m_requiredby, tmpp->name());
}
}
}
@@ -1907,7 +1907,7 @@ int __pmtrans_t::commit(FPtrList **data)
}
}
_pacman_log(PM_LOG_DEBUG, _("adding '%s' in requiredby field for '%s'"), 
pkg_new->name(), depinfo->name());
-                       depinfo->m_requiredby = 
f_stringlist_add(depinfo->requiredby(), pkg_new->name());
+                       f_stringlist_add(&depinfo->requiredby(), 
pkg_new->name());
if(db_local->write(depinfo, INFRQ_DEPENDS)) {
_pacman_log(PM_LOG_ERROR, _("could not update 'requiredby' database entry 
%s-%s"),
depinfo->name(), depinfo->version());
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to