Merging with branch master and fixing bugs
[satune.git] / src / AST / order.cc
index bf2e5662fb67e907e5d46d9e73a532f3a8bccdff..0944bcae0e3b5ae9602ce351bbc25faeffe54eaa 100644 (file)
@@ -3,6 +3,7 @@
 #include "set.h"
 #include "boolean.h"
 #include "ordergraph.h"
+#include "csolver.h"
 
 Order::Order(OrderType _type, Set *_set) :
        type(_type),
@@ -26,6 +27,15 @@ void Order::setOrderEncodingType(OrderEncodingType type) {
        order.type = type;
 }
 
+Order *Order::clone(CSolver *solver, CloneMap *map) {
+       Order *o = (Order *)map->get(this);
+       if (o != NULL)
+               return o;
+       o = solver->createOrder(type, set->clone(solver, map));
+       map->put(this, o);
+       return o;
+}
+
 Order::~Order() {
        if (orderPairTable != NULL) {
                orderPairTable->resetanddelete();