Revert "avoid unnecessary temp. vector"

This reverts commit 623596f327.

Turns out it is necessary as reportStatus()
can modify m_responseRequests
This commit is contained in:
Michael Davidsaver
2017-08-16 10:30:15 +02:00
parent 6ace47a55a
commit 561ea53198

View File

@@ -3912,15 +3912,25 @@ public:
m_needSubscriptionUpdate = true;
// make a copy so that ResponseRequest::reportStatus() can
// remove itself from m_responseRequests
size_t count = 0;
std::vector<ResponseRequest::weak_pointer> rrs(m_responseRequests.size());
for (IOIDResponseRequestMap::iterator iter = m_responseRequests.begin();
iter != m_responseRequests.end();
iter++)
{
ResponseRequest::shared_pointer ptr(iter->second.lock());
if(ptr)
EXCEPTION_GUARD(ptr->reportStatus(state));
rrs[count++] = iter->second;
}
ResponseRequest::shared_pointer ptr;
for (size_t i = 0; i< count; i++)
{
if((ptr = rrs[i].lock()))
{
EXCEPTION_GUARD(ptr->reportStatus(state));
}
}
}
/**