Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=2956ba8d48bac610716975fe9bf1c3d23fbfef4e
commit 2956ba8d48bac610716975fe9bf1c3d23fbfef4e Author: Michel Hermier <[email protected]> Date: Wed May 7 08:53:10 2014 +0200 libpacman: Make __pmsyncpkg_t a class. diff --git a/lib/libpacman/sync.cpp b/lib/libpacman/sync.cpp index c69945b..a0d4084 100644 --- a/lib/libpacman/sync.cpp +++ b/lib/libpacman/sync.cpp @@ -62,32 +62,27 @@ using namespace libpacman; -pmsyncpkg_t *_pacman_syncpkg_new(int type, Package *spkg, void *data) +__pmsyncpkg_t::__pmsyncpkg_t(int type, Package *spkg, void *data) { - pmsyncpkg_t *ps; - - ASSERT(spkg != NULL, RET_ERR(PM_ERR_WRONG_ARGS, NULL)); - ASSERT((ps = f_zalloc(sizeof(*ps))) != NULL, return NULL); - - ps->type = type; - ps->pkg_name = spkg->name(); - ps->pkg = spkg; - ps->data = data; - ps->pkg_local = _pacman_db_get_pkgfromcache(handle->db_local, ps->pkg_name); - - return(ps); + this->type = type; + this->pkg_name = spkg->name(); + this->pkg = spkg; + this->data = data; + this->pkg_local = _pacman_db_get_pkgfromcache(handle->db_local, this->pkg_name); } -int _pacman_syncpkg_delete(pmsyncpkg_t *ps) +__pmsyncpkg_t::~__pmsyncpkg_t() { - ASSERT(ps != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1)); - - if(ps->type == PM_SYNC_TYPE_REPLACE) { - FREELISTPKGS(ps->data); + if(type == PM_SYNC_TYPE_REPLACE) { + FREELISTPKGS(data); } else { - delete (Package *)ps->data; + delete (Package *)data; } - free(ps); +} + +int _pacman_syncpkg_delete(pmsyncpkg_t *ps) +{ + delete ps; return 0; } @@ -194,7 +189,7 @@ int _pacman_sync_addtarget(pmtrans_t *trans, const char *name) RET_ERR(PM_ERR_MEMORY, -1); } } - ps = _pacman_syncpkg_new(PM_SYNC_TYPE_UPGRADE, spkg, dummy); + ps = new __pmsyncpkg_t(PM_SYNC_TYPE_UPGRADE, spkg, dummy); if(ps == NULL) { delete dummy; RET_ERR(PM_ERR_MEMORY, -1); @@ -273,7 +268,7 @@ int _pacman_sync_prepare(pmtrans_t *trans, pmlist_t **data) /* add the dependencies found by resolvedeps to the transaction set */ Package *spkg = i->data; if(!_pacman_trans_find(trans, spkg->name())) { - pmsyncpkg_t *ps = _pacman_syncpkg_new(PM_SYNC_TYPE_DEPEND, spkg, NULL); + pmsyncpkg_t *ps = new __pmsyncpkg_t(PM_SYNC_TYPE_DEPEND, spkg, NULL); if(ps == NULL) { ret = -1; goto cleanup; diff --git a/lib/libpacman/sync.h b/lib/libpacman/sync.h index 900ec28..16e8026 100644 --- a/lib/libpacman/sync.h +++ b/lib/libpacman/sync.h @@ -27,7 +27,12 @@ #include "package.h" #include "trans.h" -struct __pmsyncpkg_t { +struct __pmsyncpkg_t + : public libpacman::Object +{ + __pmsyncpkg_t(int type, libpacman::Package *spkg, void *data); + ~__pmsyncpkg_t(); + unsigned char type; const char *pkg_name; libpacman::Package *pkg; @@ -35,7 +40,6 @@ struct __pmsyncpkg_t { libpacman::Package *pkg_local; }; -pmsyncpkg_t *_pacman_syncpkg_new(int type, libpacman::Package *spkg, void *data); int _pacman_syncpkg_delete(pmsyncpkg_t *syncpkg); extern diff --git a/lib/libpacman/trans_sysupgrade.cpp b/lib/libpacman/trans_sysupgrade.cpp index d205469..b4d1981 100644 --- a/lib/libpacman/trans_sysupgrade.cpp +++ b/lib/libpacman/trans_sysupgrade.cpp @@ -120,7 +120,7 @@ int _pacman_trans_sysupgrade(pmtrans_t *trans) ps->data = _pacman_list_add(ps->data, dummy); } else { /* none found -- enter pkg into the final sync list */ - ps = _pacman_syncpkg_new(PM_SYNC_TYPE_REPLACE, spkg, NULL); + ps = new __pmsyncpkg_t(PM_SYNC_TYPE_REPLACE, spkg, NULL); if(ps == NULL) { delete dummy; pm_errno = PM_ERR_MEMORY; @@ -200,7 +200,7 @@ int _pacman_trans_sysupgrade(pmtrans_t *trans) if(dummy == NULL) { goto error; } - ps = _pacman_syncpkg_new(PM_SYNC_TYPE_UPGRADE, spkg, dummy); + ps = new __pmsyncpkg_t(PM_SYNC_TYPE_UPGRADE, spkg, dummy); if(ps == NULL) { delete dummy; goto error; _______________________________________________ Frugalware-git mailing list [email protected] http://frugalware.org/mailman/listinfo/frugalware-git
