From 51bc7d02370d37b14430f16743f90bab2dc6d5a9 Mon Sep 17 00:00:00 2001 From: Hamed Date: Fri, 30 Jun 2017 10:18:10 -0700 Subject: [PATCH] fixing some bugs ... --- src/AST/predicate.c | 2 +- src/Backend/satencoder.c | 4 ++-- src/Collections/structs.c | 9 +++++++++ src/Collections/structs.h | 9 ++------- 4 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/AST/predicate.c b/src/AST/predicate.c index 97bbd18..ebb3c14 100644 --- a/src/AST/predicate.c +++ b/src/AST/predicate.c @@ -13,7 +13,7 @@ Predicate* allocPredicateTable(Table* table, UndefinedBehavior undefBehavior){ GETPREDICATETYPE(predicate) = TABLEPRED; predicate->table=table; predicate->undefinedbehavior=undefBehavior; - return predicate; + return &predicate->base; } void deletePredicate(Predicate* predicate){ diff --git a/src/Backend/satencoder.c b/src/Backend/satencoder.c index 9fd5519..2b631ff 100644 --- a/src/Backend/satencoder.c +++ b/src/Backend/satencoder.c @@ -187,9 +187,9 @@ Constraint * encodeTotalOrderSATEncoder(SATEncoder *This, BooleanOrder * boolOrd uint size= getSizeVectorBoolean(orderConstrs); for(uint i=0; isecond==boolOrder->first){ newBool = (BooleanOrder*)allocBooleanOrder(tmp->order,tmp->first,boolOrder->second); first = encodeTotalOrderSATEncoder(This, tmp); diff --git a/src/Collections/structs.c b/src/Collections/structs.c index 48886ac..9611472 100644 --- a/src/Collections/structs.c +++ b/src/Collections/structs.c @@ -1,5 +1,6 @@ #include "structs.h" #include "mymemory.h" +#include "boolean.h" VectorImpl(Table, Table *, 4); VectorImpl(Set, Set *, 4); @@ -13,4 +14,12 @@ VectorImpl(TableEntry, TableEntry *, 4); VectorImpl(ASTNode, ASTNode *, 4); VectorImpl(Int, uint64_t, 4); +unsigned int BooleanOrder_hash_Function(BooleanOrder* This){ + return ((This->first+This->second)*(This->first+This->second+1))/2 + This->second; +} + +unsigned int BooleanOrder_equals(BooleanOrder* key1, BooleanOrder* key2){ + return key1->first== key2->first && key1->second == key2->second; +} + HashTableImpl(BoolConst, BooleanOrder *, Constraint *, BooleanOrder_hash_Function, BooleanOrder_equals); diff --git a/src/Collections/structs.h b/src/Collections/structs.h index 1ae5f8c..55376b7 100644 --- a/src/Collections/structs.h +++ b/src/Collections/structs.h @@ -32,13 +32,8 @@ inline bool Ptr_equals(void * key1, void * key2) { return key1 == key2; } -inline unsigned int BooleanOrder_hash_Function(BooleanOrder* This){ - return ((This->first+This->second)(This->first+This->second+1))/2 + This->second; -} - -inline unsigned int BooleanOrder_equals(BooleanOrder* key1, BooleanOrder* key2){ - return key1->first== key2->first && key1->second == key2->second; -} +unsigned int BooleanOrder_hash_Function(BooleanOrder* This); +unsigned int BooleanOrder_equals(BooleanOrder* key1, BooleanOrder* key2); HashTableDef(Void, void *, void *, Ptr_hash_function, Ptr_equals); HashTableDef(BoolConst, BooleanOrder *, Constraint *, BooleanOrder_hash_Function, BooleanOrder_equals); -- 2.34.1