/* Compute cost of each repair */
VarDescriptor mincost=VarDescriptor.makeNew("mincost");
VarDescriptor mincostindex=VarDescriptor.makeNew("mincostindex");
- DNFConstraint dnfconst=constraint.dnfconstraint;
+ Vector dnfconst=new Vector();
+ dnfconst.addAll((Set)termination.conjunctionmap.get(constraint));
+
if (dnfconst.size()<=1) {
cr.outputline("int "+mincostindex.getSafeSymbol()+"=0;");
}
cr.outputline("int "+mincostindex.getSafeSymbol()+";");
boolean first=true;
for(int j=0;j<dnfconst.size();j++) {
- Conjunction conj=dnfconst.get(j);
- GraphNode gn=(GraphNode)termination.conjtonodemap.get(conj);
+ GraphNode gn=(GraphNode)dnfconst.get(j);
+ Conjunction conj=((TermNode)gn.getOwner()).getConjunction();
if (removed.contains(gn))
continue;
}
cr.outputline("switch("+mincostindex.getSafeSymbol()+") {");
for(int j=0;j<dnfconst.size();j++) {
- Conjunction conj=dnfconst.get(j);
- GraphNode gn=(GraphNode)termination.conjtonodemap.get(conj);
+ GraphNode gn=(GraphNode)dnfconst.get(j);
+ Conjunction conj=((TermNode)gn.getOwner()).getConjunction();
+
if (removed.contains(gn))
continue;
cr.outputline("case "+j+":");
Rule r=(Rule)state.vRules.get(i);
if (r.getInclusion().getTargetDescriptors().contains(rd)) {
for(int j=0;j<mun.numUpdates();j++) {
- UpdateNode un=mun.getUpdate(i);
+ UpdateNode un=mun.getUpdate(j);
if (un.getRule()==r) {
/* Update for rule rule r */
String name=(String)updatenames.get(un);
Rule r=(Rule)state.vRules.get(i);
if (r.getInclusion().getTargetDescriptors().contains(sd)) {
for(int j=0;j<mun.numUpdates();j++) {
- UpdateNode un=mun.getUpdate(i);
+ UpdateNode un=mun.getUpdate(j);
if (un.getRule()==r) {
/* Update for rule rule r */
String name=(String)updatenames.get(un);
cr.outputline(methodcall+");");
cr.endblock();
}
+ cr.outputline("delete "+newmodel.getSafeSymbol()+";");
cr.outputline("goto rebuild;");
}
cr.endblock();
}
methodcall+=");";
cr.outputline(methodcall);
+ cr.outputline("delete "+newmodel.getSafeSymbol()+";");
cr.outputline("goto rebuild;");
}
}
}
methodcall+=");";
cr.outputline(methodcall);
+ cr.outputline("delete "+newmodel.getSafeSymbol()+";");
cr.outputline("goto rebuild;");
}
cr.endblock();
}
methodcall+=");";
cr.outputline(methodcall);
+ cr.outputline("delete "+newmodel.getSafeSymbol()+";");
cr.outputline("goto rebuild;");
}
}