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

commit 87e64133e2b2f17a298dfebcea02064073b58f05
Author: Michel Hermier <[email protected]>
Date:   Thu May 8 08:03:28 2014 +0200

libpacman: Remove Database::remove in favour of Package::remove.

diff --git a/lib/libpacman/db.cpp b/lib/libpacman/db.cpp
index c57db7e..b600996 100644
--- a/lib/libpacman/db.cpp
+++ b/lib/libpacman/db.cpp
@@ -161,12 +161,6 @@ int Database::write(Package *info, unsigned int inforeq)
RET_ERR(PM_ERR_WRONG_ARGS, -1); // Not supported
}

-int Database::remove(Package *info)
-{
-       ASSERT(info != NULL, RET_ERR(PM_ERR_PKG_INVALID, -1));
-       RET_ERR(PM_ERR_WRONG_ARGS, -1); // Not supported
-}
-
pmlist_t *Database::getowners(const char *filename)
{
return NULL;
diff --git a/lib/libpacman/db.h b/lib/libpacman/db.h
index bb8d2d7..31c1c14 100644
--- a/lib/libpacman/db.h
+++ b/lib/libpacman/db.h
@@ -60,7 +60,6 @@ public:
virtual libpacman::Package *scan(const char *target, unsigned int inforeq) = 0;

virtual int write(libpacman::Package *info, unsigned int inforeq);
-       virtual int remove(libpacman::Package *info);

// Cache operations
pmlist_t *search(pmlist_t *needles);
diff --git a/lib/libpacman/db/localdb.cpp b/lib/libpacman/db/localdb.cpp
index f145133..ad9f3d0 100644
--- a/lib/libpacman/db/localdb.cpp
+++ b/lib/libpacman/db/localdb.cpp
@@ -120,6 +120,18 @@ int LocalPackage::read(unsigned int flags)
return 0;
}

+int LocalPackage::remove()
+{
+       char path[PATH_MAX];
+
+       snprintf(path, PATH_MAX, "%s/%s-%s", m_database->path, name(), 
version());
+       if(_pacman_rmrf(path) == -1) {
+               return(-1);
+       }
+
+       return(0);
+}
+
LocalDatabase::LocalDatabase(libpacman::Handle *handle, const char *treename)
: Database(handle, treename)
{
@@ -425,20 +437,6 @@ cleanup:
return(retval);
}

-int LocalDatabase::remove(Package *info)
-{
-       char path[PATH_MAX];
-
-       ASSERT(info != NULL, RET_ERR(PM_ERR_PKG_INVALID, -1));
-
-       snprintf(path, PATH_MAX, "%s/%s-%s", this->path, info->name(), 
info->version());
-       if(_pacman_rmrf(path) == -1) {
-               return(-1);
-       }
-
-       return(0);
-}
-
pmlist_t *LocalDatabase::getowners(const char *filename)
{
struct stat buf;
diff --git a/lib/libpacman/db/localdb.h b/lib/libpacman/db/localdb.h
index 53b06f3..3f7e6b9 100644
--- a/lib/libpacman/db/localdb.h
+++ b/lib/libpacman/db/localdb.h
@@ -41,6 +41,7 @@ public:
virtual LocalDatabase *database() const;

virtual int read(unsigned int flags);
+       virtual int remove();
};

class LocalDatabase
@@ -59,7 +60,6 @@ public:
virtual libpacman::Package *scan(const char *target, unsigned int inforeq);

virtual int write(libpacman::Package *info, unsigned int inforeq);
-       virtual int remove(libpacman::Package *info);

virtual pmlist_t *getowners(const char *filename);

diff --git a/lib/libpacman/package.cpp b/lib/libpacman/package.cpp
index 039cce7..3980ef5 100644
--- a/lib/libpacman/package.cpp
+++ b/lib/libpacman/package.cpp
@@ -283,9 +283,7 @@ int Package::write(unsigned int flags)

int Package::remove()
{
-       ASSERT(m_database != NULL, RET_ERR(PM_ERR_DB_NULL, -1));
-
-       return m_database->remove(this);
+       return -1;
}

int Package::filename(char *str, size_t size) const
diff --git a/lib/libpacman/trans.cpp b/lib/libpacman/trans.cpp
index aa92bef..0f6bec4 100644
--- a/lib/libpacman/trans.cpp
+++ b/lib/libpacman/trans.cpp
@@ -1286,7 +1286,7 @@ int _pacman_remove_commit(pmtrans_t *trans, pmlist_t 
**data)
/* remove the package from the database */
_pacman_log(PM_LOG_FLOW1, _("updating database"));
_pacman_log(PM_LOG_FLOW2, _("removing database entry '%s'"), pkg_local->name());
-               if(db_local->remove(pkg_local) == -1) {
+               if(pkg_local->remove() == -1) {
_pacman_log(PM_LOG_ERROR, _("could not remove database entry %s-%s"), 
pkg_local->name(), pkg_local->version());
}
if(_pacman_db_remove_pkgfromcache(db_local, pkg_local) == -1) {
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to