SetIteratorEncodingValue *conflictIt = ev->notequals.iterator();
while (conflictIt->hasNext()) {
EncodingValue *conflict = conflictIt->next();
+ ASSERT(conflict->value != ev->value);
if (conflict->assigned) {
encodingArray.setExpand(conflict->encoding, true);
}
NodeValuePair nvp2(right, rVal);
EncodingValue *rev = map.get(&nvp2);
if (lev != rev) {
+ ASSERT(lVal != rVal);
if (lev->inComparison && rev->inComparison) {
//Need to assign during comparison stage...
//Thus promote to comparison
while (tovisit.getSize() != 0) {
EncodingNode *n = tovisit.last();tovisit.pop();
//Add encoding node to structures
- ecv->nodes.add(n);
NodeValuePair *nvp = new NodeValuePair(n, value);
+ if(map.contains(nvp))
+ continue;
+ ecv->nodes.add(n);
map.put(nvp, ecv);
- SetIteratorEncodingEdge *edgeit = node->edges.iterator();
+ ASSERT(node != NULL);
+ SetIteratorEncodingEdge *edgeit = n->edges.iterator();
while (edgeit->hasNext()) {
EncodingEdge *ee = edgeit->next();
if (!discovered.contains(ee->left) && nodes.contains(ee->left) && ee->left->s->exists(value)) {
tovisit.push(ee->left);
discovered.add(ee->left);
+ ASSERT(discovered.contains(ee->left));
}
if (!discovered.contains(ee->right) && nodes.contains(ee->right) && ee->right->s->exists(value)) {
tovisit.push(ee->right);
discovered.add(ee->right);
+ ASSERT(discovered.contains(ee->right));
}
}
delete edgeit;