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

commit ef2f73e445aa8d28c6152486bdd80f2d1c675bef
Author: Michel Hermier <[email protected]>
Date:   Sun Sep 7 08:33:27 2014 +0200

libpacman: Remove some unecessary pointer to list affectation when doing 
FPtrList::add since now lists are in place.

diff --git a/lib/libpacman/deps.cpp b/lib/libpacman/deps.cpp
index 1b6aff0..6d692b1 100644
--- a/lib/libpacman/deps.cpp
+++ b/lib/libpacman/deps.cpp
@@ -596,13 +596,13 @@ int _pacman_resolvedeps(pmtrans_t *trans, Package 
*syncpkg, FPtrList &list,
if(ps == NULL) {
_pacman_log(PM_LOG_ERROR, _("cannot resolve dependencies for \"%s\" (\"%s\" is 
not in the package set)"),
miss->target, miss->depend.name);
-                       if(data) {
+                       if(data != NULL) {
if((miss = _pacman_malloc(sizeof(pmdepmissing_t))) == NULL) {
FREELIST(*data);
goto error;
}
*miss = *(pmdepmissing_t *)f_ptrlistitem_data(i);
-                               *data = ((FPtrList *)*data)->add(miss);
+                               ((FPtrList *)*data)->add(miss);
}
pm_errno = PM_ERR_UNSATISFIED_DEPS;
goto error;
@@ -634,13 +634,13 @@ int _pacman_resolvedeps(pmtrans_t *trans, Package 
*syncpkg, FPtrList &list,
list.add(ps);
} else {
_pacman_log(PM_LOG_ERROR, _("cannot resolve dependencies for \"%s\""), 
miss->target);
-                               if(data) {
+                               if(data != NULL) {
if((miss = _pacman_malloc(sizeof(pmdepmissing_t))) == NULL) {
FREELIST(*data);
goto error;
}
*miss = *(pmdepmissing_t *)f_ptrlistitem_data(i);
-                                       *data = ((FPtrList *)*data)->add(miss);
+                                       ((FPtrList *)*data)->add(miss);
}
pm_errno = PM_ERR_UNSATISFIED_DEPS;
goto error;
diff --git a/lib/libpacman/pacman.cpp b/lib/libpacman/pacman.cpp
index f0e28e2..144259a 100644
--- a/lib/libpacman/pacman.cpp
+++ b/lib/libpacman/pacman.cpp
@@ -1284,10 +1284,8 @@ int pacman_list_free(pmlist_t *list)
{
ASSERT(list != NULL, return(-1));

-       FPtrList *tmp = cxx_cast(list);
-       FREELIST(tmp);
-
-       return(0);
+       delete cxx_cast(list);
+       return 0;
}

/** Count the entries in a list.
diff --git a/lib/libpacman/trans.cpp b/lib/libpacman/trans.cpp
index 931089c..8eb70d0 100644
--- a/lib/libpacman/trans.cpp
+++ b/lib/libpacman/trans.cpp
@@ -709,7 +709,7 @@ int __pmtrans_t::prepare(FPtrList **data)
goto cleanup;
}
*miss = *(pmdepmissing_t *)f_ptrlistitem_data(i);
-                                                               *data = 
((FPtrList *)*data)->add(miss);
+                                                               ((FPtrList 
*)*data)->add(miss);
}
}
}
@@ -723,7 +723,7 @@ int __pmtrans_t::prepare(FPtrList **data)
goto cleanup;
}
*miss = *(pmdepmissing_t *)f_ptrlistitem_data(i);
-                                               *data = ((FPtrList 
*)*data)->add(miss);
+                                               ((FPtrList *)*data)->add(miss);
}
}
}
@@ -813,7 +813,7 @@ int __pmtrans_t::prepare(FPtrList **data)
goto cleanup;
}
*miss = *(pmdepmissing_t *)f_ptrlistitem_data(i);
-                                                               *data = 
((FPtrList *)*data)->add(miss);
+                                                               ((FPtrList 
*)*data)->add(miss);
}
}
}
@@ -1288,11 +1288,13 @@ int _pacman_cachedpkg_check_integrity(Package *spkg, 
__pmtrans_t *trans, FPtrLis
sha1sum1 = spkg->sha1sum;

if((md5sum1 == NULL) && (sha1sum1 == NULL)) {
-               if((ptr = (char *)malloc(512)) == NULL) {
-                       RET_ERR(PM_ERR_MEMORY, -1);
+               if(data != NULL) {
+                       if((ptr = (char *)malloc(512)) == NULL) {
+                               RET_ERR(PM_ERR_MEMORY, -1);
+                       }
+                       snprintf(ptr, 512, _("can't get md5 or sha1 checksum 
for package %s\n"), pkgname);
+                       ((FPtrList *)*data)->add(ptr);
}
-               snprintf(ptr, 512, _("can't get md5 or sha1 checksum for 
package %s\n"), pkgname);
-               *data = ((FPtrList *)*data)->add(ptr);
retval = 1;
goto out;
}
@@ -1300,11 +1302,13 @@ int _pacman_cachedpkg_check_integrity(Package *spkg, 
__pmtrans_t *trans, FPtrLis
md5sum2 = _pacman_MDFile(str);
sha1sum2 = _pacman_SHAFile(str);
if(md5sum2 == NULL && sha1sum2 == NULL) {
-               if((ptr = (char *)malloc(512)) == NULL) {
-                       RET_ERR(PM_ERR_MEMORY, -1);
+               if(data != NULL) {
+                       if((ptr = (char *)malloc(512)) == NULL) {
+                               RET_ERR(PM_ERR_MEMORY, -1);
+                       }
+                       snprintf(ptr, 512, _("can't get md5 or sha1 checksum 
for package %s\n"), pkgname);
+                       ((FPtrList *)*data)->add(ptr);
}
-               snprintf(ptr, 512, _("can't get md5 or sha1 checksum for 
package %s\n"), pkgname);
-               *data = ((FPtrList *)*data)->add(ptr);
retval = 1;
goto out;
}
@@ -1331,7 +1335,9 @@ int _pacman_cachedpkg_check_integrity(Package *spkg, 
__pmtrans_t *trans, FPtrLis
} else {
snprintf(ptr, 512, _("archive %s is corrupted (bad MD5 or SHA1 checksum)\n"), 
pkgname);
}
-               *data = ((FPtrList *)*data)->add(ptr);
+               if(data != NULL) {
+                       ((FPtrList *)*data)->add(ptr);
+               }
retval = 1;
}

@@ -1383,8 +1389,9 @@ int __pmtrans_t::commit(FPtrList **data)

ASSERT((db_local = m_handle->db_local) != NULL, RET_ERR(PM_ERR_DB_NULL, -1));

-       if(data != NULL)
+       if(data != NULL) {
*data = new FPtrList();
+       }

/* If there's nothing to do, return without complaining */
if(packages.empty() &&
diff --git a/lib/libpacman/util.cpp b/lib/libpacman/util.cpp
index f9f3ed6..f824fa3 100644
--- a/lib/libpacman/util.cpp
+++ b/lib/libpacman/util.cpp
@@ -500,13 +500,17 @@ int _pacman_check_freespace(pmtrans_t *trans, pmlist_t 
**data)
}
_pacman_log(PM_LOG_DEBUG, _("check_freespace: total pkg size: %lld, disk space: 
%lld"), pkgsize, freespace);
if(pkgsize > freespace) {
-               if(data) {
+               if(data != NULL) {
+                       if(*data == NULL) {
+                               *data = c_cast(new FPtrList());
+                       }
+
long long *ptr;
if((ptr = _pacman_malloc(sizeof(long long)))==NULL) {
return(-1);
}
*ptr = pkgsize;
-                       *data = c_cast(cxx_cast(*data)->add(ptr));
+                       cxx_cast(*data)->add(ptr);
if((ptr = (long long*)malloc(sizeof(long long)))==NULL) {
FPtrList *tmp = cxx_cast(*data);
FREELIST(tmp);
@@ -514,7 +518,7 @@ int _pacman_check_freespace(pmtrans_t *trans, pmlist_t 
**data)
return(-1);
}
*ptr = freespace;
-                       *data = c_cast(cxx_cast(*data)->add(ptr));
+                       cxx_cast(*data)->add(ptr);
}
pm_errno = PM_ERR_DISK_FULL;
return(-1);
diff --git a/lib/libpacman/util/fptrlist.cpp b/lib/libpacman/util/fptrlist.cpp
index f086203..cdfb18b 100644
--- a/lib/libpacman/util/fptrlist.cpp
+++ b/lib/libpacman/util/fptrlist.cpp
@@ -137,7 +137,7 @@ FPtrList *_pacman_list_reverse(FPtrList *list)
FPtrList *newlist = f_ptrlist_new();

for(auto it = list->rbegin(), end = list->rend(); it != end; it = 
it->previous()) {
-               newlist = newlist->add(f_ptrlistitem_data(it));
+               newlist->add(f_ptrlistitem_data(it));
}

return(newlist);
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to