Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=efa637d6f4021768bb3156f583e57f9b7f688928
commit efa637d6f4021768bb3156f583e57f9b7f688928 Author: Michel Hermier <herm...@frugalware.org> Date: Tue Oct 21 00:01:17 2014 +0200 libpacman: Use package_ptr where possible. diff --git a/lib/libpacman/conflict.cpp b/lib/libpacman/conflict.cpp index f413e23..5617527 100644 --- a/lib/libpacman/conflict.cpp +++ b/lib/libpacman/conflict.cpp @@ -50,7 +50,7 @@ using namespace libpacman; */ FPtrList pmtrans_t::checkconflicts() { - Package *info = NULL; + package_ptr info = NULL; FPtrList baddeps; pmdepmissing_t *miss = NULL; int howmany, remain; @@ -64,7 +64,7 @@ FPtrList pmtrans_t::checkconflicts() howmany = syncpkgs.size(); for(auto i = syncpkgs.begin(), end = syncpkgs.end(); i != end; ++i) { - Package *tp = (*i)->pkg_new; + package_ptr tp = (*i)->pkg_new; if(tp == NULL) { continue; } @@ -88,7 +88,7 @@ FPtrList pmtrans_t::checkconflicts() _pacman_log(PM_LOG_DEBUG, _("checkconflicts: targ '%s' vs db"), tp->name()); auto &cache = db_local->get_packages(); for(auto k = cache.begin(), k_end = cache.end(); k != k_end; ++k) { - Package *dp = *k; + package_ptr dp = *k; if(!strcmp(dp->name(), tp->name())) { /* a package cannot conflict with itself -- that's just not nice */ continue; @@ -116,7 +116,7 @@ FPtrList pmtrans_t::checkconflicts() /* CHECK 2: check targets against targets */ _pacman_log(PM_LOG_DEBUG, _("checkconflicts: targ '%s' vs targs"), tp->name()); for(auto k = syncpkgs.begin(), k_end = syncpkgs.end(); k != k_end; ++k) { - Package *otp = (*k)->pkg_new; + package_ptr otp = (*k)->pkg_new; if(!strcmp(otp->name(), tp->name())) { /* a package cannot conflict with itself -- that's just not nice */ continue; @@ -157,7 +157,7 @@ FPtrList pmtrans_t::checkconflicts() * conflicts list from the new package, not the old one (*info) */ for(auto j = syncpkgs.begin(), j_end = syncpkgs.end(); j != j_end; ++j) { - Package *pkg = (*j)->pkg_new; + package_ptr pkg = (*j)->pkg_new; if(!strcmp(pkg->name(), info->name())) { /* Use the new, to-be-installed package's conflicts */ conflicts = &pkg->conflicts(); @@ -235,7 +235,7 @@ FPtrList pmtrans_t::find_conflicts() char path[PATH_MAX+1]; struct stat buf; FPtrList conflicts; - Package *p, *dbpkg; + package_ptr p, dbpkg; double percent; int howmany, remain; Database *db_local = m_handle->db_local; @@ -248,12 +248,12 @@ FPtrList pmtrans_t::find_conflicts() /* CHECK 1: check every target against every target */ for(auto i = syncpkgs.begin(), end = syncpkgs.end(); i != end; ++i) { - Package *p1 = (*i)->pkg_new; + package_ptr p1 = (*i)->pkg_new; remain = flib::count(i, end); percent = (double)(howmany - remain + 1) / howmany; PROGRESS(this, PM_TRANS_PROGRESS_CONFLICTS_START, "", (percent * 100), howmany, howmany - remain + 1); for(auto j = i; j != end; ++j) { - Package *p2 = (*j)->pkg_new; + package_ptr p2 = (*j)->pkg_new; if(strcmp(p1->name(), p2->name())) { auto ret = chk_fileconflicts(p1->files(), p2->files()); for(auto k = ret.begin(), k_end = ret.end(); k != k_end; ++k) { @@ -303,11 +303,10 @@ FPtrList pmtrans_t::find_conflicts() if(!ok) { /* Look at all the targets */ for(auto k = syncpkgs.begin(), k_end = syncpkgs.end(); k != k_end && !ok; ++k) { - Package *p2 = (*k)->pkg_new; + package_ptr p2 = (*k)->pkg_new; /* As long as they're not the current package */ if(strcmp(p2->name(), p->name())) { - Package *dbpkg2 = NULL; - dbpkg2 = db_local->find(p2->name()); + package_ptr dbpkg2(db_local->find(p2->name())); if(dbpkg2 && !(dbpkg2->flags & INFRQ_FILES)) { _pacman_log(PM_LOG_DEBUG, _("loading FILES info for '%s'"), dbpkg2->name()); dbpkg2->read(INFRQ_FILES); diff --git a/lib/libpacman/db.cpp b/lib/libpacman/db.cpp index e572171..db4bf81 100644 --- a/lib/libpacman/db.cpp +++ b/lib/libpacman/db.cpp @@ -98,7 +98,7 @@ package_list Database::filter(const PackageMatcher &packagematcher) auto &cache = get_packages(); for(auto it = cache.begin(), end = cache.end(); it != end; ++it) { - Package *pkg = (Package *)*it; + package_ptr pkg = *it; if(packagematcher.match(pkg)) { ret.add(pkg); @@ -128,7 +128,7 @@ package_list Database::filter(const FStringList &needles, int packagestrmatcher_ auto &cache = get_packages(); for(auto j = cache.begin(), j_end = cache.end(); j != j_end; ++j) { - Package *pkg = (Package *)*j; + package_ptr pkg = *j; if(packagematcher.match(pkg)) { ret.add(pkg); @@ -146,13 +146,13 @@ package_list Database::filter(const char *pattern, int packagestrmatcher_flags, return package_list(); } -Package *Database::find(const PackageMatcher &packagematcher) +package_ptr Database::find(const PackageMatcher &packagematcher) { - Package *ret = NULL; + package_ptr ret = NULL; auto &cache = get_packages(); for(auto i = cache.begin(), end = cache.end(); i != end; ++i) { - Package *pkg = (Package *)*i; + package_ptr pkg = *i; if(packagematcher.match(pkg)) { if(packagematcher.match(pkg, ~PM_PACKAGE_FLAG_PROVIDES)) { @@ -166,12 +166,12 @@ Package *Database::find(const PackageMatcher &packagematcher) return ret; } -Package *Database::find(const FStrMatcher *strmatcher, int packagestrmatcher_flags) +package_ptr Database::find(const FStrMatcher *strmatcher, int packagestrmatcher_flags) { return find(PackageMatcher(strmatcher, packagestrmatcher_flags)); } -Package *Database::find(const char *pattern, int packagestrmatcher_flags, int strmatcher_flags) +package_ptr Database::find(const char *pattern, int packagestrmatcher_flags, int strmatcher_flags) { if(!_pacman_strempty(pattern)) { return find(PackageMatcher(pattern, packagestrmatcher_flags, strmatcher_flags)); @@ -245,7 +245,7 @@ const char *Database::treename() const return m_treename; } -int Database::write(Package *info, unsigned int inforeq) +int Database::write(package_ptr info, unsigned int inforeq) { ASSERT(info != NULL, RET_ERR(PM_ERR_PKG_INVALID, -1)); RET_ERR(PM_ERR_WRONG_ARGS, -1); // Not supported diff --git a/lib/libpacman/db.h b/lib/libpacman/db.h index 209b084..3015b7a 100644 --- a/lib/libpacman/db.h +++ b/lib/libpacman/db.h @@ -39,7 +39,6 @@ namespace libpacman { class Handle; -class Package; } @@ -68,7 +67,7 @@ public: virtual libpacman::package_ptr readpkg(unsigned int inforeq); virtual libpacman::package_ptr scan(const char *target, unsigned int inforeq) = 0; - virtual int write(libpacman::Package *info, unsigned int inforeq); + virtual int write(libpacman::package_ptr info, unsigned int inforeq); /* Cache operations */ int add_pkgincache(libpacman::package_ptr pkg); @@ -79,9 +78,9 @@ public: libpacman::package_list filter(const FStrMatcher *strmatcher, int packagestrmatcher_flags); libpacman::package_list filter(const FStringList &needles, int packagestrmatcher_flags, int strmatcher_flags = FStrMatcher::EQUAL); libpacman::package_list filter(const char *pattern, int packagestrmatcher_flags, int strmatcher_flags = FStrMatcher::EQUAL); - libpacman::Package *find(const libpacman::PackageMatcher &packagematcher); - libpacman::Package *find(const FStrMatcher *strmatcher, int packagestrmatcher_flags); - libpacman::Package *find(const char *target, + libpacman::package_ptr find(const libpacman::PackageMatcher &packagematcher); + libpacman::package_ptr find(const FStrMatcher *strmatcher, int packagestrmatcher_flags); + libpacman::package_ptr find(const char *target, int packagestrmatcher_flags = PM_PACKAGE_FLAG_NAME, int strmatcher_flags = FStrMatcher::EQUAL); libpacman::Group *find_group(const char *target); diff --git a/lib/libpacman/db/fakedb.cpp b/lib/libpacman/db/fakedb.cpp index 098ac8e..16101ff 100644 --- a/lib/libpacman/db/fakedb.cpp +++ b/lib/libpacman/db/fakedb.cpp @@ -35,13 +35,12 @@ using namespace libpacman; -Package *_pacman_fakedb_pkg_new(const char *name) +package_ptr _pacman_fakedb_pkg_new(const char *name) { char *ptr, *p; char *str = NULL; - Package *dummy = NULL; - dummy = new Package(NULL, NULL); + package_ptr dummy(new package(NULL, NULL)); if(dummy == NULL) { RET_ERR(PM_ERR_MEMORY, NULL); } diff --git a/lib/libpacman/db/fakedb.h b/lib/libpacman/db/fakedb.h index 8ba5232..a6c07f1 100644 --- a/lib/libpacman/db/fakedb.h +++ b/lib/libpacman/db/fakedb.h @@ -21,9 +21,9 @@ #ifndef _PACMAN_FAKEDB_H #define _PACMAN_FAKEDB_H -#include "trans.h" +#include "package.h" -libpacman::Package *_pacman_fakedb_pkg_new(const char *name); +libpacman::package_ptr _pacman_fakedb_pkg_new(const char *name); #endif /* _PACMAN_FAKEDB_H */ diff --git a/lib/libpacman/db/localdb.cpp b/lib/libpacman/db/localdb.cpp index 01b0009..185bb83 100644 --- a/lib/libpacman/db/localdb.cpp +++ b/lib/libpacman/db/localdb.cpp @@ -47,7 +47,7 @@ using namespace libpacman; LocalPackage::LocalPackage(LocalDatabase *database) - : Package(database) + : package(database) { } @@ -57,11 +57,11 @@ LocalPackage::~LocalPackage() LocalDatabase *LocalPackage::database() const { - return static_cast<LocalDatabase *>(Package::database()); + return static_cast<LocalDatabase *>(package::database()); } static -int _pacman_localpkg_file_reader(Database *db, Package *pkg, unsigned int flags, unsigned int flags_masq, const char *file, int (*reader)(Package *, FILE *)) +int _pacman_localpkg_file_reader(Database *db, package_ptr pkg, unsigned int flags, unsigned int flags_masq, const char *file, int (*reader)(package *, FILE *)) { int ret = 0; @@ -130,7 +130,7 @@ int LocalPackage::remove() return(0); } -int _pacman_localpackage_remove(Package *pkg, pmtrans_t *trans, int howmany, int remain) +int _pacman_localpackage_remove(package_ptr pkg, pmtrans_t *trans, int howmany, int remain) { struct stat buf; int position = 0; @@ -396,7 +396,7 @@ void _pacman_localdb_write_stringlist(const char *entry, const FStringList &valu } } -int LocalDatabase::write(Package *info, unsigned int inforeq) +int LocalDatabase::write(package_ptr info, unsigned int inforeq) { FILE *fp = NULL; char path[PATH_MAX]; @@ -508,7 +508,7 @@ package_list LocalDatabase::getowners(const char *filename) auto &cache = get_packages(); for(auto lp = cache.begin(), end = cache.end(); lp != end; ++lp) { - Package *info = *lp; + package_ptr info = *lp; auto &files = info->files(); for(auto i = files.begin(), end = files.end(); i != end; ++i) { diff --git a/lib/libpacman/db/localdb.h b/lib/libpacman/db/localdb.h index 079da8b..fbd23ca 100644 --- a/lib/libpacman/db/localdb.h +++ b/lib/libpacman/db/localdb.h @@ -32,7 +32,7 @@ namespace libpacman class LocalDatabase; class LocalPackage - : public libpacman::Package + : public libpacman::package { public: LocalPackage(LocalDatabase *database = 0); @@ -49,22 +49,22 @@ class LocalDatabase { public: LocalDatabase(libpacman::Handle *handle, const char *treename); - virtual ~LocalDatabase(); + virtual ~LocalDatabase() override; - virtual FStringList test() const; + virtual FStringList test() const override; - virtual int close(); + virtual int close() override; virtual int rewind(); - virtual libpacman::package_ptr readpkg(unsigned int inforeq); - virtual libpacman::package_ptr scan(const char *target, unsigned int inforeq); + virtual libpacman::package_ptr readpkg(unsigned int inforeq) override; + virtual libpacman::package_ptr scan(const char *target, unsigned int inforeq) override; - virtual int write(libpacman::Package *info, unsigned int inforeq); + virtual int write(libpacman::package_ptr info, unsigned int inforeq) override; - virtual libpacman::package_list getowners(const char *filename); + virtual libpacman::package_list getowners(const char *filename) override; protected: - virtual int open(int flags, libpacman::Timestamp *timestamp); + virtual int open(int flags, libpacman::Timestamp *timestamp) override; private: DIR *m_dir; @@ -72,7 +72,7 @@ private: } -int _pacman_localpackage_remove(libpacman::Package *pkg, pmtrans_t *trans, int howmany, int remain); +int _pacman_localpackage_remove(libpacman::package_ptr pkg, pmtrans_t *trans, int howmany, int remain); #endif /* _PACMAN_LOCALDB_H */ diff --git a/lib/libpacman/db/localdb_files.cpp b/lib/libpacman/db/localdb_files.cpp index 396774d..b84c90a 100644 --- a/lib/libpacman/db/localdb_files.cpp +++ b/lib/libpacman/db/localdb_files.cpp @@ -60,7 +60,7 @@ int _pacman_db_read_lines(FStringList &list, char *s, size_t size, FILE *fp) return lines; } -int _pacman_localdb_desc_fread(Package *info, FILE *fp) +int _pacman_localdb_desc_fread(package_ptr info, FILE *fp) { char line[512]; int sline = sizeof(line)-1; @@ -183,7 +183,7 @@ error: return -1; } -int _pacman_localdb_depends_fread(Package *info, FILE *fp) +int _pacman_localdb_depends_fread(package_ptr info, FILE *fp) { char line[512]; int sline = sizeof(line)-1; @@ -219,7 +219,7 @@ int _pacman_localdb_depends_fread(Package *info, FILE *fp) return 0; } -int _pacman_localdb_files_fread(Package *info, FILE *fp) +int _pacman_localdb_files_fread(package_ptr info, FILE *fp) { char line[512]; int sline = sizeof(line)-1; diff --git a/lib/libpacman/db/localdb_files.h b/lib/libpacman/db/localdb_files.h index 185ec86..c4f182b 100644 --- a/lib/libpacman/db/localdb_files.h +++ b/lib/libpacman/db/localdb_files.h @@ -84,9 +84,9 @@ #define INFRQ_SCRIPLET PM_LOCALPACKAGE_FLAGS_SCRIPLET #define INFRQ_ALL PM_LOCALPACKAGE_FLAGS_ALL -int _pacman_localdb_desc_fread(libpacman::Package *info, FILE *fp); -int _pacman_localdb_depends_fread(libpacman::Package *info, FILE *fp); -int _pacman_localdb_files_fread(libpacman::Package *info, FILE *fp); +int _pacman_localdb_desc_fread(libpacman::package_ptr info, FILE *fp); +int _pacman_localdb_depends_fread(libpacman::package_ptr info, FILE *fp); +int _pacman_localdb_files_fread(libpacman::package_ptr info, FILE *fp); #endif /* _PACMAN_LOCALDB_FILES_H */ diff --git a/lib/libpacman/db/syncdb.cpp b/lib/libpacman/db/syncdb.cpp index 30166bd..f0002a0 100644 --- a/lib/libpacman/db/syncdb.cpp +++ b/lib/libpacman/db/syncdb.cpp @@ -60,7 +60,7 @@ int suffixcmp(const char *str, const char *suffix) } SyncPackage::SyncPackage(SyncDatabase *database) - : Package(database) + : package(database) { } @@ -70,11 +70,11 @@ SyncPackage::~SyncPackage() SyncDatabase *SyncPackage::database() const { - return static_cast<SyncDatabase *>(Package::database()); + return static_cast<SyncDatabase *>(package::database()); } static -int _pacman_syncpkg_file_reader(SyncDatabase *db, Package *pkg, unsigned int flags, unsigned int flags_masq, int (*reader)(Package *, FILE *)) +int _pacman_syncpkg_file_reader(SyncDatabase *db, package_ptr pkg, unsigned int flags, unsigned int flags_masq, int (*reader)(package_ptr, FILE *)) { int ret = 0; diff --git a/lib/libpacman/db/syncdb.h b/lib/libpacman/db/syncdb.h index e167a16..534e92b 100644 --- a/lib/libpacman/db/syncdb.h +++ b/lib/libpacman/db/syncdb.h @@ -34,7 +34,7 @@ namespace libpacman class SyncDatabase; class SyncPackage - : public libpacman::Package + : public libpacman::package { public: SyncPackage(SyncDatabase *database = 0); diff --git a/lib/libpacman/deps.cpp b/lib/libpacman/deps.cpp index fbc006c..47141c6 100644 --- a/lib/libpacman/deps.cpp +++ b/lib/libpacman/deps.cpp @@ -131,10 +131,10 @@ void pmtrans_t::sortbydeps(int mode) /* We compute the edges */ for(auto i = vertices.begin(), end = vertices.end(); i != end; ++i) { - Package *p_i = (*i)->data->pkg_new != NULL ? (*i)->data->pkg_new : (*i)->data->pkg_local; + package_ptr p_i = (*i)->data->pkg_new != NULL ? (*i)->data->pkg_new : (*i)->data->pkg_local; /* TODO this should be somehow combined with _pacman_checkdeps */ for(auto j = vertices.begin(); j != end; ++j) { - Package *p_j = (*j)->data->pkg_new != NULL ? (*j)->data->pkg_new : (*j)->data->pkg_local; + package_ptr p_j = (*j)->data->pkg_new != NULL ? (*j)->data->pkg_new : (*j)->data->pkg_local; int child = 0; auto &depends = p_i->depends(); for(auto k = depends.begin(), k_end = depends.end(); k != k_end && !child; ++k) { @@ -207,7 +207,7 @@ FPtrList pmtrans_t::checkdeps(unsigned char op) for(auto i = syncpkgs.begin(), end = syncpkgs.end(); i != end; ++i) { pmsyncpkg_t *syncpkg = *i; - Package *pkg_new = syncpkg->pkg_new, *pkg_local = syncpkg->pkg_local; + package_ptr pkg_new = syncpkg->pkg_new, pkg_local = syncpkg->pkg_local; if(pkg_local != NULL) { bool found = false; @@ -219,7 +219,7 @@ FPtrList pmtrans_t::checkdeps(unsigned char op) /* PM_TRANS_TYPE_UPGRADE handles the backwards dependencies, ie, the packages * listed in the requiredby field. */ - Package *p; + package_ptr p; if((p = db_local->find(requiredby_name)) == NULL) { /* hmmm... package isn't installed.. */ @@ -285,7 +285,7 @@ FPtrList pmtrans_t::checkdeps(unsigned char op) * to install. this way, if we match against a to-be-installed * package, we'll defer to the NEW one, not the one already * installed. */ - Package *p = *m; + package_ptr p = *m; pmsyncpkg_t *syncpkg = find(p->name()); if(syncpkg != NULL) { found = p->match(depend); @@ -294,8 +294,7 @@ FPtrList pmtrans_t::checkdeps(unsigned char op) } /* check other targets */ for(auto k = syncpkgs.begin(), k_end = syncpkgs.end(); k != k_end && !found; ++k) { - Package *p = (*k)->pkg_new; - found = p->match(depend); + found = (*k)->pkg_new->match(depend); } /* else if still not found... */ if(!found) { @@ -373,7 +372,7 @@ void pmtrans_t::removedeps() auto &depends = (*i)->pkg_local->depends(); for(auto j = depends.begin(), j_end = depends.end(); j != j_end; ++j) { pmdepend_t depend; - Package *dep; + package_ptr dep; int needed = 0; if(_pacman_splitdep(*j, &depend)) { @@ -388,7 +387,7 @@ void pmtrans_t::removedeps() _pacman_log(PM_LOG_WARNING, _("cannot find package \"%s\" or anything that provides it!"), depend.name); continue; } - dep = db->find(((Package *)*whatPackagesProvide.begin())->name()); + dep = db->find((*whatPackagesProvide.begin())->name()); if(dep == NULL) { _pacman_log(PM_LOG_ERROR, _("dep is NULL!")); /* wtf */ @@ -408,7 +407,7 @@ void pmtrans_t::removedeps() /* see if other packages need it */ auto &requiredby = dep->requiredby(); for(auto k = requiredby.begin(), k_end = requiredby.end(); k != k_end && !needed; ++k) { - Package *dummy = db->find((const char *)*k); + package_ptr dummy(db->find((const char *)*k)); if(!find(dummy->name())) { needed = 1; } @@ -451,11 +450,11 @@ int pmtrans_t::resolvedeps(FPtrList **data) for(auto i = deps.begin(), end = deps.end(); i != end; ++i) { int found = 0; pmdepmissing_t *miss = (pmdepmissing_t *)*i; - Package *ps = NULL; + package_ptr ps = NULL; /* check if one of the packages in *list already provides this dependency */ for(auto j = syncpkgs.begin(), j_end = syncpkgs.end(); j != j_end && !found; ++j) { - Package *sp = (*j)->pkg_new; + package_ptr sp = (*j)->pkg_new; if(sp->provides(miss->depend.name)) { _pacman_log(PM_LOG_DEBUG, _("%s provides dependency %s -- skipping"), sp->name(), miss->depend.name); @@ -503,7 +502,7 @@ int pmtrans_t::resolvedeps(FPtrList **data) */ int usedep = 1; if(m_handle->ignorepkg.contains(ps->name())) { - Package *dummypkg = new Package(miss->target, NULL); + package_ptr dummypkg(new package(miss->target, NULL)); QUESTION(this, PM_TRANS_CONV_INSTALL_IGNOREPKG, dummypkg, ps, NULL, &usedep); } if(usedep) { @@ -542,7 +541,7 @@ error: return -1; } -int _pacman_depcmp(Package *pkg, pmdepend_t *dep) +int _pacman_depcmp(package_ptr pkg, pmdepend_t *dep) { int equal = 0, cmp; const char *mod = "~="; @@ -604,14 +603,13 @@ int inList(FStringList *lst, const char *lItem) { extern "C" { int pacman_output_generate(FStringList *targets, FPtrList *dblist) { FStringList found; - Package *pkg = NULL; int foundMatch = 0; unsigned int inforeq = INFRQ_DEPENDS; for(auto j = dblist->begin(), end = dblist->end(); j != end; ++j) { Database *db = *j; do { foundMatch = 0; - pkg = db->readpkg(inforeq); + package_ptr pkg = db->readpkg(inforeq); while(pkg != NULL) { const char *pname = pkg->name(); if(targets != NULL && targets->remove(pname)) { diff --git a/lib/libpacman/deps.h b/lib/libpacman/deps.h index dc5878b..7559070 100644 --- a/lib/libpacman/deps.h +++ b/lib/libpacman/deps.h @@ -44,7 +44,7 @@ struct __pmdepmissing_t { FPtrList &_pacman_depmisslist_add(FPtrList &misslist, pmdepmissing_t *miss); int _pacman_splitdep(const char *depstr, pmdepend_t *depend); -int _pacman_depcmp(libpacman::Package *pkg, pmdepend_t *dep); +int _pacman_depcmp(libpacman::package_ptr pkg, pmdepend_t *dep); #endif /* _PACMAN_DEPS_H */ diff --git a/lib/libpacman/package.cpp b/lib/libpacman/package.cpp index 625c88d..23fc92d 100644 --- a/lib/libpacman/package.cpp +++ b/lib/libpacman/package.cpp @@ -48,19 +48,19 @@ using namespace libpacman; -Package::Package(Database *database = 0) +package::package(Database *database = 0) : m_database(database) , m_reason(PM_PKG_REASON_EXPLICIT) { } -Package::Package(package_node *package_node) - : Package() +package::package(package_node *package_node) + : package() { m_package_node = package_node; } -Package::Package(const char *name, const char *version) - : Package() +package::package(const char *name, const char *version) + : package() { if(!_pacman_strempty(name)) { flags |= PM_PACKAGE_FLAG_NAME; @@ -72,17 +72,17 @@ Package::Package(const char *name, const char *version) } } -Package::~Package() +package::~package() { free(m_path); } -Database *Package::database() const +Database *package::database() const { return m_database; } -bool Package::set_filename(const char *filename, int witharch) +bool package::set_filename(const char *filename, int witharch) { if(splitname(filename, m_name, m_version, witharch)) { flags |= PM_PACKAGE_FLAG_NAME | PM_PACKAGE_FLAG_VERSION; @@ -93,15 +93,15 @@ bool Package::set_filename(const char *filename, int witharch) /* Helper function for comparing packages */ -int _pacman_pkg_cmp(const Package *p1, const Package *p2) +int _pacman_pkg_cmp(const package_ptr p1, const package_ptr p2) { - Package *pkg1 = (Package *)p1; - Package *pkg2 = (Package *)p2; + package *pkg1 = (package *)p1; + package *pkg2 = (package *)p2; return pkg1 == pkg2 ? 0: strcmp(pkg1->name(), pkg2->name()); } -bool Package::is_valid(const pmtrans_t *trans, const char *pkgfile) const +bool package::is_valid(const pmtrans_t *trans, const char *pkgfile) const { struct utsname name; @@ -146,14 +146,14 @@ pkg_error: /* Test for existence of a package in a package_list. */ -const Package *_pacman_pkg_isin(const char *needle, const package_list &haystack) +const package_ptr _pacman_pkg_isin(const char *needle, const package_list &haystack) { if(needle == NULL) { return NULL; } for(auto lp = haystack.begin(), end = haystack.end(); lp != end; ++lp) { - Package *info = *lp; + package *info = *lp; if(info && !strcmp(info->name(), needle)) { return info; @@ -162,7 +162,7 @@ const Package *_pacman_pkg_isin(const char *needle, const package_list &haystack return NULL; } -bool Package::splitname(const char *target, char *name, char *version, int witharch) +bool package::splitname(const char *target, char *name, char *version, int witharch) { char *tmp; char *p, *q; @@ -203,12 +203,12 @@ bool Package::splitname(const char *target, char *name, char *version, int witha return true; } -int Package::read(unsigned int flags) +int package::read(unsigned int flags) { return -1; } -int Package::write(unsigned int flags) +int package::write(unsigned int flags) { int ret; @@ -221,21 +221,21 @@ int Package::write(unsigned int flags) return ret; } -int Package::remove() +int package::remove() { return -1; } -int Package::filename(char *str, size_t size) const +int package::filename(char *str, size_t size) const { return snprintf(str, size, "%s-%s-%s%s", m_name, m_version, arch, PM_EXT_PKG); } -/* Look for a filename in a Package.backup list. If we find it, +/* Look for a filename in a package::backup list. If we find it, * then we return the md5 or sha1 hash (parsed from the same line) */ -char *Package::fileneedbackup(const char *file) const +char *package::fileneedbackup(const char *file) const { ASSERT(!_pacman_strempty(file), RET_ERR(PM_ERR_WRONG_ARGS, NULL)); @@ -265,7 +265,7 @@ char *Package::fileneedbackup(const char *file) const } #define LIBPACMAN_PACKAGE_PROPERTY(type, name, flag) \ -type Package::name() \ +type package::name() \ { \ if((flags & PM_PACKAGE_FLAG_##flag) == 0) { \ read(PM_PACKAGE_FLAG_##flag); \ @@ -277,32 +277,32 @@ type Package::name() \ #undef LIBPACMAN_PACKAGE_PROPERTY -const char *Package::path() const +const char *package::path() const { return m_path; } -const FStringList &Package::provides() const +const FStringList &package::provides() const { return m_provides; } -bool Package::provides(const char *pkgname) +bool package::provides(const char *pkgname) { return provides().contains(pkgname); } -const FStringList &Package::replaces() const +const FStringList &package::replaces() const { return m_replaces; } -bool Package::replaces(const char *pkgname) +bool package::replaces(const char *pkgname) { return replaces().contains(pkgname); } -bool Package::match(const pmdepend_t &depend) +bool package::match(const pmdepend_t &depend) { if(provides(depend.name) || replaces(depend.name)) { @@ -339,7 +339,7 @@ bool Package::match(const pmdepend_t &depend) } } -bool less<const libpacman::Package *>::operator () (const Package *pkg1, const Package *pkg2) +bool less<const libpacman::package_ptr>::operator () (const package_ptr pkg1, const package_ptr pkg2) { return _pacman_pkg_cmp(pkg1, pkg2) < 0; } diff --git a/lib/libpacman/package.h b/lib/libpacman/package.h index 4befd69..c892ad7 100644 --- a/lib/libpacman/package.h +++ b/lib/libpacman/package.h @@ -92,7 +92,7 @@ enum { namespace libpacman { /* IMPROVEMENT: Add a dirty_flags to know what flags needs to be written */ -class Package +class package : public ::flib::FObject { #define LIBPACMAN_PACKAGE_PROPERTY(type, name, flag) \ @@ -104,11 +104,11 @@ public: \ #undef LIBPACMAN_PACKAGE_PROPERTY public: - Package(libpacman::Database *database = 0); - Package(libpacman::package_node *package_node); - Package(const char *name, const char *version); + package(libpacman::Database *database = 0); + package(libpacman::package_node *package_node); + package(const char *name, const char *version); protected: - virtual ~Package(); + virtual ~package(); public: libpacman::Database *database() const; @@ -136,8 +136,8 @@ public: bool match(const pmdepend_t &depend); private: - Package(const libpacman::Package &other); - libpacman::Package &operator =(const libpacman::Package &other); + package(const package &other); + package &operator =(const package &other); public: libpacman::Database *m_database; @@ -177,22 +177,23 @@ public: char *m_path; }; + #if 0 + typedef flib::refcounted_ptr<package> package_ptr; + #else + typedef package *package_ptr; + #endif + template <class T> struct less; template <> - struct less<const libpacman::Package *> + struct less<const package_ptr> { - bool operator () (const Package *pkg1, const Package *pkg2); + bool operator () (const package_ptr pkg1, const package_ptr pkg2); }; - #if 0 - typedef flib::refcounted_ptr<libpacman::Package> package_ptr; - #else - typedef libpacman::Package *package_ptr; - #endif typedef FList<package_ptr> package_list; - typedef flib::set<libpacman::package_ptr, libpacman::less<const libpacman::Package *>> package_set; + typedef flib::set<libpacman::package_ptr, libpacman::less<const package_ptr>> package_set; class PackageMatcher { @@ -221,7 +222,7 @@ private: private: char m_name[PKG_NAME_LEN]; - flib::set<libpacman::Package *> m_packages; + flib::set<libpacman::package_ptr> m_packages; }; struct package_node_less @@ -237,8 +238,8 @@ private: }; } // namespace libpacman -int _pacman_pkg_cmp(const libpacman::Package *p1, const libpacman::Package *p2); -const libpacman::Package *_pacman_pkg_isin(const char *needle, const libpacman::package_list &haystack); +int _pacman_pkg_cmp(const libpacman::package pkg1, const libpacman::package_ptr pkg2); +const libpacman::package_ptr _pacman_pkg_isin(const char *needle, const libpacman::package_list &haystack); #endif /* _PACMAN_PACKAGE_H */ diff --git a/lib/libpacman/package/fpmpackage.cpp b/lib/libpacman/package/fpmpackage.cpp index 2cd9721..7db9a5a 100644 --- a/lib/libpacman/package/fpmpackage.cpp +++ b/lib/libpacman/package/fpmpackage.cpp @@ -48,7 +48,7 @@ using namespace libpacman; * Returns: 0 on success, 1 on error */ static -int _pacman_pkginfo_fread(FILE *descfile, Package *info, int output) +int _pacman_pkginfo_fread(FILE *descfile, package_ptr info, int output) { char line[PATH_MAX]; char* ptr = NULL; @@ -133,7 +133,7 @@ int _pacman_pkginfo_fread(FILE *descfile, Package *info, int output) return(0); } -Package *_pacman_fpmpackage_load(const char *pkgfile) +package_ptr _pacman_fpmpackage_load(const char *pkgfile) { char *expath; int i, ret; @@ -142,12 +142,11 @@ Package *_pacman_fpmpackage_load(const char *pkgfile) int scriptcheck = 0; register struct archive *archive; struct archive_entry *entry; - Package *info = NULL; if((archive = _pacman_archive_read_open_all_file(pkgfile)) == NULL) { RET_ERR(PM_ERR_PKG_OPEN, NULL); } - info = new Package(NULL, NULL); + package_ptr info(new package(NULL, NULL)); if(info == NULL) { archive_read_finish (archive); RET_ERR(PM_ERR_MEMORY, NULL); @@ -183,7 +182,7 @@ Package *_pacman_fpmpackage_load(const char *pkgfile) char *str; if((str = (char *)malloc(PATH_MAX)) == NULL) { - RET_ERR(PM_ERR_MEMORY, (Package *)-1); + RET_ERR(PM_ERR_MEMORY, (package_ptr)-1); } filelist = _pacman_archive_read_fropen(archive); while(!feof(filelist)) { diff --git a/lib/libpacman/package/fpmpackage.h b/lib/libpacman/package/fpmpackage.h index 5a30dcb..1adf9ca 100644 --- a/lib/libpacman/package/fpmpackage.h +++ b/lib/libpacman/package/fpmpackage.h @@ -25,11 +25,9 @@ #ifndef _PACMAN_FPMPACKAGE_H #define _PACMAN_FPMPACKAGE_H -#include "pacman_p.h" +#include "package.h" -#include <stdio.h> - -libpacman::Package *_pacman_fpmpackage_load(const char *pkgfile); +libpacman::package_ptr _pacman_fpmpackage_load(const char *pkgfile); #endif /* _PACMAN_FPMPACKAGE_H */ diff --git a/lib/libpacman/package/packagecache.cpp b/lib/libpacman/package/packagecache.cpp index c3059bb..39ae1c3 100644 --- a/lib/libpacman/package/packagecache.cpp +++ b/lib/libpacman/package/packagecache.cpp @@ -69,7 +69,7 @@ int _pacman_packagecache_clean(int level) if(strstr(str, PM_EXT_PKG ".part")) { continue; } - if(!Package::splitname(str, name, version, 1)) { + if(!package::splitname(str, name, version, 1)) { clean.add(str); continue; } @@ -83,7 +83,7 @@ int _pacman_packagecache_clean(int level) if(strstr(s, PM_EXT_PKG ".part")) { continue; } - if(!Package::splitname(s, n, v, 1)) { + if(!package::splitname(s, n, v, 1)) { continue; } if(!strcmp(name, n)) { diff --git a/lib/libpacman/pacman.cpp b/lib/libpacman/pacman.cpp index 4d8f3f7..8685c2a 100644 --- a/lib/libpacman/pacman.cpp +++ b/lib/libpacman/pacman.cpp @@ -781,7 +781,7 @@ int pacman_download_xfered(const pmdownload_t *download, off64_t *offset) void *pacman_pkg_getinfo(pmpkg_t *_pkg, unsigned char parm) { void *data = NULL; - Package *pkg = cxx_cast(_pkg); + package *pkg = cxx_cast(_pkg); /* Sanity checks */ ASSERT(handle != NULL, return(NULL)); @@ -859,7 +859,7 @@ pmpkg_t *pacman_pkg_load(char *filename) */ int pacman_pkg_free(pmpkg_t *_pkg) { - Package *pkg = cxx_cast(_pkg); + package *pkg = cxx_cast(_pkg); _pacman_log(PM_LOG_FUNCTION, "enter pacman_pkg_free"); diff --git a/lib/libpacman/pacman_p.h b/lib/libpacman/pacman_p.h index b888130..dcaaff5 100644 --- a/lib/libpacman/pacman_p.h +++ b/lib/libpacman/pacman_p.h @@ -40,7 +40,7 @@ namespace libpacman { class Database; class Group; class Handle; -class Package; +class package; } @@ -49,7 +49,7 @@ DEFINE_CAST(struct __pmgrp_t, libpacman::Group) DEFINE_CAST(struct __pmhandle_t, libpacman::Handle) DEFINE_CAST(struct __pmlist_t, FPtrList) //DEFINE_CAST(struct __pmlist_iterator_t, FPtrListItem) -DEFINE_CAST(struct __pmpkg_t, libpacman::Package) +DEFINE_CAST(struct __pmpkg_t, libpacman::package) //DEFINE_CAST(struct __pmtrans_t, libpacman::Transaction) template <typename T> diff --git a/lib/libpacman/sync.cpp b/lib/libpacman/sync.cpp index cca1420..5352e31 100644 --- a/lib/libpacman/sync.cpp +++ b/lib/libpacman/sync.cpp @@ -61,7 +61,7 @@ using namespace libpacman; __pmsyncpkg_t::__pmsyncpkg_t() { } -__pmsyncpkg_t::__pmsyncpkg_t(int type, Package *spkg) +__pmsyncpkg_t::__pmsyncpkg_t(int type, package_ptr spkg) { this->type = type; this->pkg_name = strdup(spkg->name()); diff --git a/lib/libpacman/sync.h b/lib/libpacman/sync.h index 385a267..6b11ad2 100644 --- a/lib/libpacman/sync.h +++ b/lib/libpacman/sync.h @@ -31,7 +31,7 @@ struct __pmsyncpkg_t : public ::flib::FObject { __pmsyncpkg_t(); - __pmsyncpkg_t(int type, libpacman::Package *spkg); + __pmsyncpkg_t(int type, libpacman::package_ptr spkg); ~__pmsyncpkg_t(); pmtranstype_t type; @@ -39,7 +39,7 @@ struct __pmsyncpkg_t int m_flags; libpacman::package_ptr pkg_new; libpacman::package_ptr pkg_local; - FList<libpacman::package_ptr> m_replaces; + libpacman::package_list m_replaces; }; #endif /* _PACMAN_SYNC_H */ diff --git a/lib/libpacman/trans.cpp b/lib/libpacman/trans.cpp index 0576c27..978a9ac 100644 --- a/lib/libpacman/trans.cpp +++ b/lib/libpacman/trans.cpp @@ -40,6 +40,7 @@ #include "server.h" #include "sync.h" #include "pacman.h" +#include "pacman_p.h" #include "versioncmp.h" #include "hash/md5.h" @@ -131,7 +132,7 @@ int _pacman_trans_event(pmtrans_t *trans, unsigned char event, void *data1, void switch(event) { case PM_TRANS_EVT_ADD_DONE: { - Package *pkg_new = (Package *)data1; + package *pkg_new = (package *)data1; snprintf(str, LOG_STR_LEN, "installed %s (%s)", pkg_new->name(), pkg_new->version()); @@ -139,7 +140,7 @@ int _pacman_trans_event(pmtrans_t *trans, unsigned char event, void *data1, void } break; case PM_TRANS_EVT_REMOVE_DONE: { - Package *pkg_old = (Package *)data1; + package *pkg_old = (package *)data1; snprintf(str, LOG_STR_LEN, "removed %s (%s)", pkg_old->name(), pkg_old->version()); @@ -147,8 +148,8 @@ int _pacman_trans_event(pmtrans_t *trans, unsigned char event, void *data1, void } break; case PM_TRANS_EVT_UPGRADE_DONE: { - Package *pkg_new = (Package *)data1; - Package *pkg_old = (Package *)data2; + package *pkg_new = (package *)data1; + package *pkg_old = (package *)data2; snprintf(str, LOG_STR_LEN, "upgraded %s (%s -> %s)", pkg_new->name(), pkg_old->version(), pkg_new->version()); @@ -209,7 +210,7 @@ int _pacman_syncpkg_cmp(const void *s1, const void *s2) static int pkg_cmp(const void *p1, const void *p2) { - return(strcmp(((Package *)p1)->name(), ((pmsyncpkg_t *)p2)->pkg_name)); + return(strcmp(((package *)p1)->name(), ((pmsyncpkg_t *)p2)->pkg_name)); } static int check_olddelay(Handle *handle) @@ -248,7 +249,7 @@ pmsyncpkg_t *__pmtrans_t::add(pmsyncpkg_t *syncpkg, int flags) } static -Package *_pacman_filedb_load(Database *db, const char *name) +package_ptr _pacman_filedb_load(Database *db, const char *name) { struct stat buf; @@ -264,7 +265,7 @@ Package *_pacman_filedb_load(Database *db, const char *name) // FIXME: Make returning a pmsyncpkg_t in the future int __pmtrans_t::add(const char *target, pmtranstype_t type, int flags, pmsyncpkg_t **syncpkg) { - Package *pkg_new = NULL, *pkg_local = NULL; + package_ptr pkg_new = NULL, pkg_local = NULL; Database *db_local; const char *name = NULL; @@ -522,7 +523,7 @@ int __pmtrans_t::prepare(FPtrList **data) pmdepmissing_t *miss = *i; int found = 0; pmsyncpkg_t *ps; - Package *local; + package_ptr local; _pacman_log(PM_LOG_FLOW2, _("package '%s' is conflicting with '%s'"), miss->target, miss->depend.name); @@ -613,7 +614,7 @@ int __pmtrans_t::prepare(FPtrList **data) asked.add(miss->depend.name); if(doremove) { pmsyncpkg_t *rsync = find(miss->depend.name); - Package *q = new Package(miss->depend.name, NULL); + package_ptr q(new package(miss->depend.name, NULL)); if(q == NULL) { if(data) { FREELIST(*data); @@ -704,8 +705,8 @@ int __pmtrans_t::prepare(FPtrList **data) int pfound = 0; /* If miss->depend.name depends on something that miss->target and a * package in final both provide, then it's okay... */ - Package *leavingp = db_local->find(miss->target); - Package *conflictp = db_local->find(miss->depend.name); + package_ptr leavingp = db_local->find(miss->target); + package_ptr conflictp = db_local->find(miss->depend.name); if(!leavingp || !conflictp) { _pacman_log(PM_LOG_ERROR, _("something has gone horribly wrong")); ret = -1; @@ -797,7 +798,7 @@ cleanup: while(!lp.empty()) { for(auto i = lp.begin(), end = lp.end(); i != end; ++i) { pmdepmissing_t *miss = (pmdepmissing_t *)*i; - Package *pkg_local = db_local->scan(miss->depend.name, INFRQ_ALL); + package_ptr pkg_local(db_local->scan(miss->depend.name, INFRQ_ALL)); if(pkg_local) { _pacman_log(PM_LOG_FLOW2, _("pulling %s in the targets list"), pkg_local->name()); add(miss->depend.name, m_type, PM_TRANS_TYPE_REMOVE); @@ -896,7 +897,7 @@ cleanup: } static -int _pacman_fpmpackage_install(Package *pkg, pmtranstype_t type, pmtrans_t *trans, unsigned char cb_state, int howmany, int remain, Package *oldpkg) +int _pacman_fpmpackage_install(package_ptr pkg, pmtranstype_t type, pmtrans_t *trans, unsigned char cb_state, int howmany, int remain, package_ptr oldpkg) { int archive_ret, errors = 0, i; double percent = 0; @@ -1197,7 +1198,7 @@ int _pacman_fpmpackage_install(Package *pkg, pmtranstype_t type, pmtrans_t *tran } static -int _pacman_cachedpkg_check_integrity(Package *spkg, __pmtrans_t *trans, FPtrList **data) +int _pacman_cachedpkg_check_integrity(package_ptr spkg, __pmtrans_t *trans, FPtrList **data) { char str[PATH_MAX], pkgname[PATH_MAX]; char *md5sum1, *md5sum2, *sha1sum1, *sha1sum2; @@ -1335,7 +1336,7 @@ int __pmtrans_t::commit(FPtrList **data) for(auto j = syncpkgs.begin(), j_end = syncpkgs.end(); j != j_end; ++j) { pmsyncpkg_t *ps = *j; - Package *spkg = ps->pkg_new; + package_ptr spkg = ps->pkg_new; Database *dbs = spkg->database(); if(current == dbs) { @@ -1440,7 +1441,7 @@ int __pmtrans_t::commit(FPtrList **data) for(auto i = syncpkgs.begin(), end = syncpkgs.end(); i != end; ++i) { pmsyncpkg_t *ps = *i; for(auto j = ps->m_replaces.begin(), end = ps->m_replaces.end(); j != end; ++j) { - Package *pkg = *j; + package_ptr pkg = *j; if(!tr->find(pkg->name())) { if(tr->add(pkg->name(), tr->m_type, tr->flags) == -1) { goto error; @@ -1476,7 +1477,7 @@ int __pmtrans_t::commit(FPtrList **data) tr->progress.connect(&progress); for(auto i = syncpkgs.begin(), end = syncpkgs.end(); i != end; ++i) { pmsyncpkg_t *ps = *i, *ps_new = NULL; - Package *spkg = ps->pkg_new; + package_ptr spkg(ps->pkg_new); char str[PATH_MAX]; snprintf(str, PATH_MAX, "%s%s/%s-%s-%s" PM_EXT_PKG, m_handle->root, m_handle->cachedir, spkg->name(), spkg->version(), spkg->arch); if(tr->add(str, tr->m_type, tr->flags, &ps_new) == -1) { @@ -1508,15 +1509,15 @@ int __pmtrans_t::commit(FPtrList **data) _pacman_log(PM_LOG_FLOW1, _("updating database for replaced packages' dependencies")); for(auto i = syncpkgs.begin(), end = syncpkgs.end(); i != end; ++i) { pmsyncpkg_t *ps = *i; - Package *pkg_new = db_local->find(ps->pkg_name); + package_ptr pkg_new(db_local->find(ps->pkg_name)); for(auto j = ps->m_replaces.begin(), end = ps->m_replaces.end(); j != end; ++j) { - Package *old = *j; + package_ptr old = *j; /* merge lists */ auto &requiredby = old->requiredby(); for(auto k = requiredby.begin(), end = requiredby.end(); k != end; ++k) { if(!pkg_new->requiredby().contains(*k)) { /* replace old's name with new's name in the requiredby's dependency list */ - Package *depender = db_local->find(*k); + package_ptr depender(db_local->find(*k)); if(depender == NULL) { /* If the depending package no longer exists in the local db, * then it must have ALSO conflicted with ps->pkg. If @@ -1656,7 +1657,7 @@ int __pmtrans_t::commit(FPtrList **data) _pacman_log(PM_LOG_FLOW2, _("updating dependency packages 'requiredby' fields")); auto &depends = pkg_local->depends(); for(auto lp = depends.begin(), lp_end = depends.end(); lp != lp_end; ++lp) { - Package *depinfo = NULL; + package_ptr depinfo = NULL; pmdepend_t depend; char *data; if(_pacman_splitdep(*lp, &depend)) { @@ -1717,7 +1718,7 @@ int __pmtrans_t::commit(FPtrList **data) * looking for packages depending on the package to add */ auto &cache = db_local->get_packages(); for(auto lp = cache.begin(), lp_end = cache.end(); lp != lp_end; ++lp) { - Package *tmpp = *lp; + package_ptr tmpp(*lp); if(tmpp == NULL) { continue; } @@ -1756,12 +1757,11 @@ int __pmtrans_t::commit(FPtrList **data) _pacman_log(PM_LOG_FLOW2, _("updating dependency packages 'requiredby' fields")); } for(auto lp = depends.begin(), lp_end = depends.end(); lp != lp_end; ++lp) { - Package *depinfo; pmdepend_t depend; if(_pacman_splitdep(*lp, &depend)) { continue; } - depinfo = db_local->find(depend.name); + package_ptr depinfo(db_local->find(depend.name)); if(depinfo == NULL) { /* look for a provides package */ auto provides = db_local->whatPackagesProvide(depend.name); diff --git a/lib/libpacman/trans.h b/lib/libpacman/trans.h index 3a90fb0..0cb657b 100644 --- a/lib/libpacman/trans.h +++ b/lib/libpacman/trans.h @@ -33,7 +33,6 @@ namespace libpacman { class Database; class Handle; -class Package; } diff --git a/lib/libpacman/trans_sysupgrade.cpp b/lib/libpacman/trans_sysupgrade.cpp index 760e0db..e7475a6 100644 --- a/lib/libpacman/trans_sysupgrade.cpp +++ b/lib/libpacman/trans_sysupgrade.cpp @@ -55,7 +55,7 @@ using namespace libpacman; -static int istoonew(Package *pkg) +static int istoonew(package_ptr pkg) { time_t t; Handle *handle = pkg->database()->m_handle; @@ -84,12 +84,12 @@ int _pacman_trans_sysupgrade(pmtrans_t *trans) for(auto i = handle->dbs_sync.begin(), end = handle->dbs_sync.end(); i != end; ++i) { auto &cache = (*i)->get_packages(); for(auto j = cache.begin(), end = cache.end(); j != end; ++j) { - Package *spkg = *j; + package_ptr spkg(*j); auto &replaces = spkg->replaces(); for(auto k = replaces.begin(), end = replaces.end(); k != end; ++k) { auto &cache_local = db_local->get_packages(); for(auto m = cache_local.begin(), end = cache_local.end(); m != end; ++m) { - Package *lpkg = *m; + package_ptr lpkg(*m); if(!strcmp((const char *)*k, lpkg->name())) { _pacman_log(PM_LOG_DEBUG, _("checking replacement '%s' for package '%s'"), (const char *)*k, spkg->name()); if(handle->ignorepkg.contains(lpkg->name())) { @@ -133,8 +133,8 @@ int _pacman_trans_sysupgrade(pmtrans_t *trans) for(auto i = cache_local.begin(), end= cache_local.end(); i != end; ++i) { int cmp; int replace=0; - Package *local = *i; - Package *spkg = NULL; + package_ptr local(*i); + package_ptr spkg = NULL; pmsyncpkg_t *ps; for(auto j = handle->dbs_sync.begin(), end = handle->dbs_sync.end(); !spkg && j != end; ++j) { _______________________________________________ Frugalware-git mailing list Frugalware-git@frugalware.org http://frugalware.org/mailman/listinfo/frugalware-git