Fixing bugs ...
[satune.git] / src / Serialize / deserializer.cc
index fc4cd7bab1faa3f30191d05c9ebe8385830b57f4..bffb901153216f812f6797d3265618e5c48b4196 100644 (file)
@@ -145,33 +145,37 @@ void Deserializer::deserializeSet(){
        myread(&type, sizeof(VarType));
        bool isRange;
        myread(&isRange, sizeof(bool));
-       uint64_t low;
-       myread(&low, sizeof(uint64_t));
-       uint64_t high;
-       myread(&high, sizeof(uint64_t));
-       bool isMutable;
+        bool isMutable;
        myread(&isMutable, sizeof(bool));
-       Set *set;
-       if(isMutable){
-               set = new MutableSet(type);
-       }
-       uint size;
-       myread(&size, sizeof(uint));
-       Vector<uint64_t> members;
-       for(uint i=0; i<size; i++){
-               uint64_t mem;
-               myread(&mem, sizeof(uint64_t));
-               if(isMutable) {
-                       ((MutableSet*) set)->addElementMSet(mem);
-               }else {
-                       members.push(mem);
-               }
-       }
-       if(!isMutable){
-               set = isRange? solver->createRangeSet(type, low, high):
-                       solver->createSet(type, members.expose(), size);
-       }
-       map.put(s_ptr, set);
+        if(isRange){
+                uint64_t low;
+                myread(&low, sizeof(uint64_t));
+                uint64_t high;
+                myread(&high, sizeof(uint64_t));
+                map.put(s_ptr, new Set(type, low, high));
+        } else{
+                Set *set;
+                if(isMutable){
+                        set = new MutableSet(type);
+                }
+                uint size;
+                myread(&size, sizeof(uint));
+                Vector<uint64_t> members;
+                for(uint i=0; i<size; i++){
+                        uint64_t mem;
+                        myread(&mem, sizeof(uint64_t));
+                        if(isMutable) {
+                                ((MutableSet*) set)->addElementMSet(mem);
+                        }else {
+                                members.push(mem);
+                        }
+                }
+                if(!isMutable){
+                        set = solver->createSet(type, members.expose(), size);
+                }
+                map.put(s_ptr, set);
+        }
+       
 }
 
 void Deserializer::deserializeBooleanLogic(){