mirror of https://github.com/aria2/aria2
2008-05-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Use erase+lower_bound+insert instead of sort. * src/DefaultPieceStorage.cc (addPieceStats)pull/1/head
parent
f2588a882b
commit
46636201c1
|
@ -1,3 +1,8 @@
|
||||||
|
2008-05-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
||||||
|
|
||||||
|
Use erase+lower_bound+insert instead of sort.
|
||||||
|
* src/DefaultPieceStorage.cc (addPieceStats)
|
||||||
|
|
||||||
2008-05-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
2008-05-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
||||||
|
|
||||||
Use A2STR::SHARP_C and A2STR::EQUAL_C.
|
Use A2STR::SHARP_C and A2STR::EQUAL_C.
|
||||||
|
|
|
@ -701,19 +701,24 @@ void DefaultPieceStorage::updatePieceStats(const unsigned char* newBitfield,
|
||||||
|
|
||||||
void DefaultPieceStorage::addPieceStats(size_t index)
|
void DefaultPieceStorage::addPieceStats(size_t index)
|
||||||
{
|
{
|
||||||
std::deque<SharedHandle<PieceStat> >::iterator cur =
|
SharedHandle<PieceStat> pieceStat(_pieceStats[index]);
|
||||||
|
{
|
||||||
|
std::deque<SharedHandle<PieceStat> >::iterator cur =
|
||||||
|
std::lower_bound(_sortedPieceStats.begin(), _sortedPieceStats.end(),
|
||||||
|
pieceStat, PieceRarer());
|
||||||
|
_sortedPieceStats.erase(cur);
|
||||||
|
}
|
||||||
|
pieceStat->addCount();
|
||||||
|
|
||||||
|
std::deque<SharedHandle<PieceStat> >::iterator to =
|
||||||
std::lower_bound(_sortedPieceStats.begin(), _sortedPieceStats.end(),
|
std::lower_bound(_sortedPieceStats.begin(), _sortedPieceStats.end(),
|
||||||
_pieceStats[index], PieceRarer());
|
pieceStat, PieceRarer());
|
||||||
|
|
||||||
(*cur)->addCount();
|
_sortedPieceStats.insert(to, pieceStat);
|
||||||
|
|
||||||
std::deque<SharedHandle<PieceStat> >::iterator last =
|
// for(std::deque<SharedHandle<PieceStat> >::const_iterator i = _sortedPieceStats.begin(); i != _sortedPieceStats.end(); ++i) {
|
||||||
std::upper_bound(cur+1, _sortedPieceStats.end(), *cur, PieceRarer());
|
// logger->debug("index = %u, count = %u", (*i)->getIndex(), (*i)->getCount());
|
||||||
|
// }
|
||||||
std::sort(cur, last, PieceRarer());
|
|
||||||
// for(std::deque<SharedHandle<PieceStat> >::const_iterator i = _sortedPieceStats.begin(); i != _sortedPieceStats.end(); ++i) {
|
|
||||||
// logger->debug("index = %u, count = %u", (*i)->getIndex(), (*i)->getCount());
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
PieceStat::PieceStat(size_t index):_order(0), _index(index), _count(0) {}
|
PieceStat::PieceStat(size_t index):_order(0), _index(index), _count(0) {}
|
||||||
|
|
Loading…
Reference in New Issue