| 142 | |
| 143 | template<class Tracer> |
| 144 | forceinline const Choice* |
| 145 | Path<Tracer>::push(Worker& stat, Space* s, Space* c, unsigned int nid) { |
| 146 | if (!ds.empty() && ds.top().lao()) { |
| 147 | // Topmost stack entry was LAO -> reuse |
| 148 | ds.pop().dispose(); |
| 149 | } |
| 150 | Edge sn(s,c,nid); |
| 151 | if (sn.work()) |
| 152 | n_work++; |
| 153 | ds.push(sn); |
| 154 | stat.stack_depth(static_cast<unsigned long int>(ds.entries())); |
| 155 | return sn.choice(); |
| 156 | } |
| 157 | |
| 158 | template<class Tracer> |
| 159 | forceinline void |