diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2010-02-28 16:04:52 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2010-02-28 16:04:52 +0000 |
| commit | 72e475dfdeaa4a87dff0eef994e7814e94c40363 (patch) | |
| tree | 94a84e90c14876db223e4a733f651fe0b034f5e9 /src/HandshakeExtensionMessage.cc | |
| parent | c342bde9627b434effbc0cd10b817670d1da0923 (diff) | |
2010-03-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Avoid to calculate end() iterator in each loop. std::deque is
particularly slow. Make sure that recalculate end iterator if
element is erased during loop.
Diffstat (limited to 'src/HandshakeExtensionMessage.cc')
| -rw-r--r-- | src/HandshakeExtensionMessage.cc | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/HandshakeExtensionMessage.cc b/src/HandshakeExtensionMessage.cc index a2d0484b..4637bb3e 100644 --- a/src/HandshakeExtensionMessage.cc +++ b/src/HandshakeExtensionMessage.cc @@ -67,8 +67,8 @@ std::string HandshakeExtensionMessage::getPayload() dict["p"] = _tcpPort; } BDE extDict = BDE::dict(); - for(std::map<std::string, uint8_t>::const_iterator itr = _extensions.begin(); - itr != _extensions.end(); ++itr) { + for(std::map<std::string, uint8_t>::const_iterator itr = _extensions.begin(), + eoi = _extensions.end(); itr != eoi; ++itr) { const std::map<std::string, uint8_t>::value_type& vt = *itr; extDict[vt.first] = vt.second; } @@ -91,8 +91,8 @@ std::string HandshakeExtensionMessage::toString() const if(_metadataSize) { strappend(s, ", metadataSize=", util::uitos(_metadataSize)); } - for(std::map<std::string, uint8_t>::const_iterator itr = _extensions.begin(); - itr != _extensions.end(); ++itr) { + for(std::map<std::string, uint8_t>::const_iterator itr = _extensions.begin(), + eoi = _extensions.end(); itr != eoi; ++itr) { const std::map<std::string, uint8_t>::value_type& vt = *itr; strappend(s, ", ", vt.first, "=", util::uitos(vt.second)); } @@ -105,8 +105,8 @@ void HandshakeExtensionMessage::doReceivedAction() _peer->port = _tcpPort; _peer->setIncomingPeer(false); } - for(std::map<std::string, uint8_t>::const_iterator itr = _extensions.begin(); - itr != _extensions.end(); ++itr) { + for(std::map<std::string, uint8_t>::const_iterator itr = _extensions.begin(), + eoi = _extensions.end(); itr != eoi; ++itr) { const std::map<std::string, uint8_t>::value_type& vt = *itr; _peer->setExtension(vt.first, vt.second); } @@ -182,8 +182,8 @@ HandshakeExtensionMessage::create(const unsigned char* data, size_t length) } const BDE& extDict = dict["m"]; if(extDict.isDict()) { - for(BDE::Dict::const_iterator i = extDict.dictBegin(); - i != extDict.dictEnd(); ++i) { + for(BDE::Dict::const_iterator i = extDict.dictBegin(), + eoi = extDict.dictEnd(); i != eoi; ++i) { if((*i).second.isInteger()) { msg->_extensions[(*i).first] = (*i).second.i(); } |
