forceinline size_t Base<View,subscribe>::dispose(Space& home) { home.ignore(*this,AP_DISPOSE); (void) Propagator::dispose(home); if (subscribe) x.cancel(home,*this,PC_INT_DOM); // take care of last_data unsigned int literals = ts()->domsize*x.size(); home.rfree(last_data, sizeof(Tuple*)*literals); (void) tupleSet.~TupleSet(); return sizeof(*this); }
forceinline size_t Incremental<View>::dispose(Space& home) { if (!home.failed()) { int literals = static_cast<int>(ts()->domsize*x.size()); for (int i = literals; i--; ) if (support_data[i]) { SupportEntry* lastse = support_data[i]; while (lastse->next() != NULL) lastse = lastse->next(); support_data[i]->dispose(home, lastse); } home.rfree(support_data, sizeof(SupportEntry*)*literals); } ac.dispose(home); (void) Base<View,false>::dispose(home); return sizeof(*this); }