Adding IntegerEncodingResolver ...
[satune.git] / src / ASTTransform / integerencodingrecord.cc
index 961524570d09109c9acf27beaf1d042fa70bff2d..abd763fe7db988e9ebf35b95d8cd14ade955da92 100644 (file)
@@ -12,7 +12,7 @@
 IntegerEncodingRecord::IntegerEncodingRecord(Set* _set):
        secondarySet(_set)
 {
-       elementTable = new HashSetOrderElement();
+       elementTable = new HashsetOrderElement();
 }
 
 IntegerEncodingRecord::~IntegerEncodingRecord(){
@@ -21,13 +21,15 @@ IntegerEncodingRecord::~IntegerEncodingRecord(){
        }
 }
 
-Element * IntegerEncodingRecord::getOrderIntegerElement(CSolver *This, uint64_t item) {
+Element * IntegerEncodingRecord::getOrderIntegerElement(CSolver *This, uint64_t item, bool create) {
        OrderElement oelement(item, NULL);
-       if ( !elementTable->contains(&oelement)) {
+       if ( elementTable->contains(&oelement)) {
+               return elementTable->get(&oelement)->getElement();
+       } else if (create) {
                Element *elem = This->getElementVar(secondarySet);
                elementTable->add(new OrderElement(item, elem));
                return elem;
-       } else
-               return elementTable->get(&oelement)->getElement();
+       }
+       return NULL;
 }