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

Reply via email to