Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=4d014adf2b1749785693fcf5d3f2bccb3479ab4a
commit 4d014adf2b1749785693fcf5d3f2bccb3479ab4a Author: Michel Hermier <[email protected]> Date: Tue May 13 11:57:29 2014 +0200 libpacman: Avoid creating a dummy package, when we can simply use the refcounting. diff --git a/lib/libpacman/cache.cpp b/lib/libpacman/cache.cpp index 4d967c1..89b8dd1 100644 --- a/lib/libpacman/cache.cpp +++ b/lib/libpacman/cache.cpp @@ -145,7 +145,7 @@ int _pacman_db_remove_pkgfromcache(Database *db, Package *pkg) } _pacman_log(PM_LOG_DEBUG, _("removing entry '%s' from '%s' cache"), pkg->name(), db->treename); - delete data; + data->release(); _pacman_db_clear_grpcache(db); diff --git a/lib/libpacman/package.cpp b/lib/libpacman/package.cpp index 3980ef5..4f8988a 100644 --- a/lib/libpacman/package.cpp +++ b/lib/libpacman/package.cpp @@ -147,7 +147,7 @@ bool Package::set_filename(const char *filename, int witharch) int _pacman_pkg_delete(Package *self) { - delete self; + self->release(); return 0; } diff --git a/lib/libpacman/trans_sysupgrade.cpp b/lib/libpacman/trans_sysupgrade.cpp index 77c0c8f..e3a0398 100644 --- a/lib/libpacman/trans_sysupgrade.cpp +++ b/lib/libpacman/trans_sysupgrade.cpp @@ -107,26 +107,21 @@ int _pacman_trans_sysupgrade(pmtrans_t *trans) * the package to replace. */ pmsyncpkg_t *ps; - Package *dummy = new Package(lpkg->name(), NULL); - if(dummy == NULL) { - pm_errno = PM_ERR_MEMORY; - goto error; - } - dummy->m_requiredby = _pacman_list_strdup(lpkg->requiredby()); /* check if spkg->name is already in the packages list. */ ps = trans->find(spkg->name()); if(ps) { /* found it -- just append to the replaces list */ - ps->data = _pacman_list_add(ps->data, dummy); + lpkg->acquire(); + ps->data = _pacman_list_add(ps->data, lpkg); } else { /* none found -- enter pkg into the final sync list */ ps = new __pmsyncpkg_t(PM_SYNC_TYPE_REPLACE, spkg, NULL); if(ps == NULL) { - delete dummy; pm_errno = PM_ERR_MEMORY; goto error; } - ps->data = _pacman_list_add(NULL, dummy); + lpkg->acquire(); + ps->data = _pacman_list_add(NULL, lpkg); trans->syncpkgs = _pacman_list_add(trans->syncpkgs, ps); } _pacman_log(PM_LOG_FLOW2, _("%s-%s elected for upgrade (to be replaced by %s-%s)"), _______________________________________________ Frugalware-git mailing list [email protected] http://frugalware.org/mailman/listinfo/frugalware-git
