71a72,73
> m_vnets = 0;
>
83,84c85,86
< Throttle::addLinks(const map<int, MessageBuffer*>& in_vec,
< const map<int, MessageBuffer*>& out_vec)
---
> Throttle::addLinks(const vector<MessageBuffer*>& in_vec,
> const vector<MessageBuffer*>& out_vec)
88,89c90,92
< for (auto& it : in_vec) {
< int vnet = it.first;
---
> for (int vnet = 0; vnet < in_vec.size(); ++vnet) {
> MessageBuffer *in_ptr = in_vec[vnet];
> MessageBuffer *out_ptr = out_vec[vnet];
91,92c94,97
< auto jt = out_vec.find(vnet);
< assert(jt != out_vec.end());
---
> m_vnets++;
> m_units_remaining.push_back(0);
> m_in.push_back(in_ptr);
> m_out.push_back(out_ptr);
94,100d98
< MessageBuffer *in_ptr = it.second;
< MessageBuffer *out_ptr = (*jt).second;
<
< m_in[vnet] = in_ptr;
< m_out[vnet] = out_ptr;
< m_units_remaining[vnet] = 0;
<
113,114c111,113
< assert(out != NULL);
< assert(in != NULL);
---
> if (out == nullptr || in == nullptr) {
> return;
> }
181,182c180
< for (auto& it : m_in) {
< int vnet = it.first;
---
> for (int vnet = 0; vnet < m_vnets; ++vnet) {
184c182
< it.second, m_out[vnet]);
---
> m_in[vnet], m_out[vnet]);
187,188c185
< for (auto it = m_in.rbegin(); it != m_in.rend(); ++it) {
< int vnet = (*it).first;
---
> for (int vnet = m_vnets-1; vnet >= 0; --vnet) {
190c187
< (*it).second, m_out[vnet]);
---
> m_in[vnet], m_out[vnet]);