| 244 | NodeVector sorted; |
| 245 | |
| 246 | explicit Impl(const std::vector<std::unique_ptr<ExecNode>>& nodes) : nodes(nodes) { |
| 247 | visited.reserve(nodes.size()); |
| 248 | sorted.resize(nodes.size()); |
| 249 | |
| 250 | for (const auto& node : nodes) { |
| 251 | Visit(node.get()); |
| 252 | } |
| 253 | |
| 254 | DCHECK_EQ(visited.size(), nodes.size()); |
| 255 | } |
| 256 | |
| 257 | void Visit(ExecNode* node) { |
| 258 | if (visited.count(node) != 0) return; |