diff --git a/ConvertObj/ConvertObj.cc b/ConvertObj/ConvertObj.cc index f7f9b1e4c4..40ff3e7170 100644 --- a/ConvertObj/ConvertObj.cc +++ b/ConvertObj/ConvertObj.cc @@ -2,6 +2,7 @@ #include #include #include +#include #include #include "BinaryIO.h" #include @@ -194,9 +195,9 @@ void Module::write(std::ostream& out) void sortModules(std::vector>& modules) { - std::unordered_set> unemitted; + std::set unemitted; for(auto& m : modules) - unemitted.insert(m); + unemitted.insert(m->name); std::unordered_map> nameMap; for(auto& m : modules) @@ -242,7 +243,7 @@ void sortModules(std::vector>& modules) { if(std::shared_ptr m2 = m2weak.lock()) { - auto unemittedP = unemitted.find(m2); + auto unemittedP = unemitted.find(m2->name); if(unemittedP != unemitted.end()) { sorted.push_back(m2); @@ -252,7 +253,7 @@ void sortModules(std::vector>& modules) } ++p; } - sorted.push_back(*unemitted.begin()); + sorted.push_back(nameMap[*unemitted.begin()]); unemitted.erase(unemitted.begin()); }