| 1226 | } |
| 1227 | |
| 1228 | void Node::sortAllChildren() { |
| 1229 | if (_children && _flags.isOn(Node::Reorder)) { |
| 1230 | auto& data = _children->data(); |
| 1231 | std::stable_sort(data.begin(), data.end(), [](const Own<Value>& a, const Own<Value>& b) { |
| 1232 | return a->to<Node>()->getOrder() < b->to<Node>()->getOrder(); |
| 1233 | }); |
| 1234 | _flags.setOff(Node::Reorder); |
| 1235 | } |
| 1236 | } |
| 1237 | |
| 1238 | void Node::markReorder() noexcept { |
| 1239 | _flags.setOn(Node::Reorder); |