From 72e475dfdeaa4a87dff0eef994e7814e94c40363 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Sun, 28 Feb 2010 16:04:52 +0000 Subject: 2010-03-01 Tatsuhiro Tsujikawa 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. --- src/DHTMessageFactoryImpl.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/DHTMessageFactoryImpl.cc') diff --git a/src/DHTMessageFactoryImpl.cc b/src/DHTMessageFactoryImpl.cc index cd0eb8e0..e498aeb1 100644 --- a/src/DHTMessageFactoryImpl.cc +++ b/src/DHTMessageFactoryImpl.cc @@ -416,8 +416,8 @@ DHTMessageFactoryImpl::createGetPeersReplyMessageWithValues const BDE& valuesList = getList(rDict, DHTGetPeersReplyMessage::VALUES); std::vector > peers; - for(BDE::List::const_iterator i = valuesList.listBegin(); - i != valuesList.listEnd(); ++i) { + for(BDE::List::const_iterator i = valuesList.listBegin(), + eoi = valuesList.listEnd(); i != eoi; ++i) { const BDE& data = *i; if(data.isString() && data.s().size() == 6) { std::pair addr = -- cgit