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
