summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Kalnischkies <david@kalnischkies.de>2015-09-11 20:53:07 +0200
committerDavid Kalnischkies <david@kalnischkies.de>2015-09-14 15:22:18 +0200
commitae732225ec2fa0d7434c9f40a92ced8683752211 (patch)
treebac1ff4ba6bdc42f342446c86966f9dad350c3b4
parentfcffe89d8344e699267210badac53ff24dd41148 (diff)
use std-algorithms instead of manual loops to avoid overflow warning
Reported-By: gcc Understandable: no Git-Dch: Ignore
-rw-r--r--apt-pkg/acquire-worker.cc4
-rw-r--r--apt-pkg/acquire.cc43
2 files changed, 26 insertions, 21 deletions
diff --git a/apt-pkg/acquire-worker.cc b/apt-pkg/acquire-worker.cc
index 889768030..45ee6dde3 100644
--- a/apt-pkg/acquire-worker.cc
+++ b/apt-pkg/acquire-worker.cc
@@ -254,8 +254,8 @@ bool pkgAcquire::Worker::RunMessages()
ItemDone();
// Change the status so that it can be dequeued
- for (pkgAcquire::Queue::QItem::owner_iterator O = Itm->Owners.begin(); O != Itm->Owners.end(); ++O)
- (*O)->Status = pkgAcquire::Item::StatIdle;
+ for (auto const &O: Itm->Owners)
+ O->Status = pkgAcquire::Item::StatIdle;
// Mark the item as done (taking care of all queues)
// and then put it in the main queue again
std::vector<Item*> const ItmOwners = Itm->Owners;
diff --git a/apt-pkg/acquire.cc b/apt-pkg/acquire.cc
index 6a800002e..a74f1c2f6 100644
--- a/apt-pkg/acquire.cc
+++ b/apt-pkg/acquire.cc
@@ -24,6 +24,7 @@
#include <apt-pkg/fileutl.h>
#include <algorithm>
+#include <numeric>
#include <string>
#include <vector>
#include <iostream>
@@ -658,10 +659,10 @@ bool pkgAcquire::Clean(string Dir)
/* This is the total number of bytes needed */
APT_PURE unsigned long long pkgAcquire::TotalNeeded()
{
- unsigned long long Total = 0;
- for (ItemCIterator I = ItemsBegin(); I != ItemsEnd(); ++I)
- Total += (*I)->FileSize;
- return Total;
+ return std::accumulate(ItemsBegin(), ItemsEnd(), 0,
+ [](unsigned long long const T, Item const * const I) {
+ return T + I->FileSize;
+ });
}
/*}}}*/
// Acquire::FetchNeeded - Number of bytes needed to get /*{{{*/
@@ -669,11 +670,13 @@ APT_PURE unsigned long long pkgAcquire::TotalNeeded()
/* This is the number of bytes that is not local */
APT_PURE unsigned long long pkgAcquire::FetchNeeded()
{
- unsigned long long Total = 0;
- for (ItemCIterator I = ItemsBegin(); I != ItemsEnd(); ++I)
- if ((*I)->Local == false)
- Total += (*I)->FileSize;
- return Total;
+ return std::accumulate(ItemsBegin(), ItemsEnd(), 0,
+ [](unsigned long long const T, Item const * const I) {
+ if (I->Local == false)
+ return T + I->FileSize;
+ else
+ return T;
+ });
}
/*}}}*/
// Acquire::PartialPresent - Number of partial bytes we already have /*{{{*/
@@ -681,11 +684,13 @@ APT_PURE unsigned long long pkgAcquire::FetchNeeded()
/* This is the number of bytes that is not local */
APT_PURE unsigned long long pkgAcquire::PartialPresent()
{
- unsigned long long Total = 0;
- for (ItemCIterator I = ItemsBegin(); I != ItemsEnd(); ++I)
- if ((*I)->Local == false)
- Total += (*I)->PartialSize;
- return Total;
+ return std::accumulate(ItemsBegin(), ItemsEnd(), 0,
+ [](unsigned long long const T, Item const * const I) {
+ if (I->Local == false)
+ return T + I->PartialSize;
+ else
+ return T;
+ });
}
/*}}}*/
// Acquire::UriBegin - Start iterator for the uri list /*{{{*/
@@ -909,8 +914,8 @@ bool pkgAcquire::Queue::Cycle()
return true;
I->Worker = Workers;
- for (QItem::owner_iterator O = I->Owners.begin(); O != I->Owners.end(); ++O)
- (*O)->Status = pkgAcquire::Item::StatFetching;
+ for (auto const &O: I->Owners)
+ O->Status = pkgAcquire::Item::StatFetching;
PipeDepth++;
if (Workers->QueueItem(I) == false)
return false;
@@ -962,11 +967,11 @@ HashStringList pkgAcquire::Queue::QItem::GetExpectedHashes() const /*{{{*/
APT_PURE unsigned long long pkgAcquire::Queue::QItem::GetMaximumSize() const /*{{{*/
{
unsigned long long Maximum = std::numeric_limits<unsigned long long>::max();
- for (pkgAcquire::Queue::QItem::owner_iterator O = Owners.begin(); O != Owners.end(); ++O)
+ for (auto const &O: Owners)
{
- if ((*O)->FileSize == 0)
+ if (O->FileSize == 0)
continue;
- Maximum = std::min(Maximum, (*O)->FileSize);
+ Maximum = std::min(Maximum, O->FileSize);
}
if (Maximum == std::numeric_limits<unsigned long long>::max())
return 0;