diff --git a/src/Frame.cc b/src/Frame.cc index 05f4d3117f..6569e2a184 100644 --- a/src/Frame.cc +++ b/src/Frame.cc @@ -583,7 +583,7 @@ broker::expected Frame::SerializeIDList(const IDPList& in) } broker::expected -Frame::SerializeOffsetMap(const std::unordered_map& in) +Frame::SerializeOffsetMap(const OffsetMap& in) { broker::vector rval; @@ -638,7 +638,7 @@ Frame::UnserializeIDList(const broker::vector& data) std::pair> Frame::UnserializeOffsetMap(const broker::vector& data) { - std::unordered_map rval; + OffsetMap rval; for ( broker::vector::size_type i = 0; i < data.size(); i += 2 ) { diff --git a/src/Var.cc b/src/Var.cc index 48e069e7b0..6270019c84 100644 --- a/src/Var.cc +++ b/src/Var.cc @@ -679,7 +679,7 @@ public: TraversalCode PostExpr(const Expr*) override; std::vector scopes; - std::vector outer_id_references; + std::unordered_set outer_id_references; }; TraversalCode OuterIDBindingFinder::PreExpr(const Expr* expr) @@ -705,7 +705,7 @@ TraversalCode OuterIDBindingFinder::PreExpr(const Expr* expr) // not something we have to worry about also being at outer scope. return TC_CONTINUE; - outer_id_references.push_back(e); + outer_id_references.insert(e); return TC_CONTINUE; } @@ -752,17 +752,10 @@ IDPList gather_outer_ids(Scope* scope, Stmt* body) OuterIDBindingFinder cb(scope); body->Traverse(&cb); - IDPList idl ( cb.outer_id_references.size() ); + IDPList idl; - for ( size_t i = 0; i < cb.outer_id_references.size(); ++i ) - { - auto id = cb.outer_id_references[i]->Id(); - - if ( idl.is_member(id) ) - continue; - - idl.append(id); - } + for ( auto ne : cb.outer_id_references ) + idl.append(ne->Id()); return idl; }