mirror of https://github.com/aria2/aria2
2010-06-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Fixed assertion error if updateTransferStatFor is called with peer X before calculateStat() after peer X is added. * src/DefaultPeerStorage.ccpull/1/head
parent
3dfbec0f9f
commit
98dc02192d
|
@ -1,3 +1,9 @@
|
||||||
|
2010-06-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||||
|
|
||||||
|
Fixed assertion error if updateTransferStatFor is called with peer
|
||||||
|
X before calculateStat() after peer X is added.
|
||||||
|
* src/DefaultPeerStorage.cc
|
||||||
|
|
||||||
2010-06-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
2010-06-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||||
|
|
||||||
Rewritten DHTMessageCallback using Visitor pattern. Eliminated
|
Rewritten DHTMessageCallback using Visitor pattern. Eliminated
|
||||||
|
|
|
@ -249,7 +249,9 @@ void DefaultPeerStorage::updateTransferStatFor(const SharedHandle<Peer>& peer)
|
||||||
}
|
}
|
||||||
std::map<std::string, TransferStat>::iterator itr =
|
std::map<std::string, TransferStat>::iterator itr =
|
||||||
_peerTransferStatMap.find(peer->getID());
|
_peerTransferStatMap.find(peer->getID());
|
||||||
assert(itr != _peerTransferStatMap.end());
|
if(itr == _peerTransferStatMap.end()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
_cachedTransferStat -= (*itr).second;
|
_cachedTransferStat -= (*itr).second;
|
||||||
TransferStat s = calculateStatFor(peer);
|
TransferStat s = calculateStatFor(peer);
|
||||||
_cachedTransferStat += s;
|
_cachedTransferStat += s;
|
||||||
|
@ -259,7 +261,13 @@ void DefaultPeerStorage::updateTransferStatFor(const SharedHandle<Peer>& peer)
|
||||||
TransferStat DefaultPeerStorage::getTransferStatFor
|
TransferStat DefaultPeerStorage::getTransferStatFor
|
||||||
(const SharedHandle<Peer>& peer)
|
(const SharedHandle<Peer>& peer)
|
||||||
{
|
{
|
||||||
return _peerTransferStatMap[peer->getID()];
|
std::map<std::string, TransferStat>::const_iterator itr =
|
||||||
|
_peerTransferStatMap.find(peer->getID());
|
||||||
|
if(itr == _peerTransferStatMap.end()) {
|
||||||
|
return TransferStat();
|
||||||
|
} else {
|
||||||
|
return (*itr).second;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void DefaultPeerStorage::deleteUnusedPeer(size_t delSize) {
|
void DefaultPeerStorage::deleteUnusedPeer(size_t delSize) {
|
||||||
|
|
Loading…
Reference in New Issue