Fix some of the memory leaks
[satune.git] / src / AST / order.c
1 #include "order.h"
2 #include "structs.h"
3 #include "set.h"
4 #include "boolean.h"
5
6
7 Order* allocOrder(OrderType type, Set * set){
8         Order* order = (Order*)ourmalloc(sizeof(Order));
9         order->set=set;
10         allocInlineDefVectorBoolean(& order->constraints);
11         order->type=type;
12         allocOrderEncoding(& order->order, order);
13         order->boolsToConstraints = NULL;
14         return order;
15 }
16
17 void initializeOrderHashTable(Order* order){
18         order->boolsToConstraints= allocHashTableBoolConst(HT_INITIAL_CAPACITY, HT_DEFAULT_FACTOR);
19 }
20
21 void addOrderConstraint(Order* order, BooleanOrder* constraint){
22         pushVectorBoolean( &order->constraints, (Boolean*) constraint);
23 }
24
25 void setOrderEncodingType(Order* order, OrderEncodingType type){
26         order->order.type = type;
27 }
28
29 void deleteOrder(Order* order){
30         deleteVectorArrayBoolean(& order->constraints);
31         deleteOrderEncoding(& order->order);
32         if(order->boolsToConstraints!= NULL) {
33                 resetAndDeleteHashTableBoolConst(order->boolsToConstraints);
34                 deleteHashTableBoolConst(order->boolsToConstraints);
35         }
36         ourfree(order);
37 }