get up to date with master
This commit is contained in:
@@ -105,11 +105,11 @@ std::ostream& terse(std::ostream& o, PVField::shared_pointer const & pv)
|
||||
|
||||
std::ostream& printEnumT(std::ostream& o, epics::pvData::PVStructure const & pvEnumT)
|
||||
{
|
||||
PVInt::shared_pointer pvIndex = pvEnumT.getSubField<PVInt>("index");
|
||||
PVInt::const_shared_pointer pvIndex = pvEnumT.getSubField<PVInt>("index");
|
||||
if (!pvIndex)
|
||||
throw std::runtime_error("enum_t structure does not have 'int index' field");
|
||||
|
||||
PVStringArray::shared_pointer pvChoices = pvEnumT.getSubField<PVStringArray>("choices");
|
||||
PVStringArray::const_shared_pointer pvChoices = pvEnumT.getSubField<PVStringArray>("choices");
|
||||
if (!pvChoices)
|
||||
throw std::runtime_error("enum_t structure does not have 'string choices[]' field");
|
||||
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user