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

Reply via email to