| 193 | } |
| 194 | |
| 195 | size_t |
| 196 | NoGoodsProp::dispose(Space& home) { |
| 197 | if (home.failed()) { |
| 198 | // This will be executed when one ngl returned true for notice() |
| 199 | NGL* l = root; |
| 200 | while (l != nullptr) { |
| 201 | NGL* t = l->next(); |
| 202 | (void) l->dispose(home); |
| 203 | l = t; |
| 204 | } |
| 205 | } else if (root != nullptr) { |
| 206 | // This will be executed for subsumption |
| 207 | NGL* l = disposenext(root,home,*this,true); |
| 208 | while ((l != nullptr) && l->leaf()) |
| 209 | l = disposenext(l,home,*this,true); |
| 210 | if (l != nullptr) |
| 211 | l = disposenext(l,home,*this,true); |
| 212 | while (l != nullptr) |
| 213 | l = disposenext(l,home,*this,false); |
| 214 | } |
| 215 | home.ignore(*this,AP_DISPOSE,true); |
| 216 | (void) Propagator::dispose(home); |
| 217 | return sizeof(*this); |
| 218 | } |
| 219 | |
| 220 | }} |
| 221 |
no test coverage detected