Fix memory bug
authorBrian Demsky <bdemsky@uci.edu>
Thu, 22 Jun 2017 22:00:17 +0000 (15:00 -0700)
committerBrian Demsky <bdemsky@uci.edu>
Thu, 22 Jun 2017 22:00:17 +0000 (15:00 -0700)
src/AST/order.c
src/AST/order.h
src/C.cfg
src/Test/buildconstraints.c

index c05a4a19891101487ff07924f0336b89085c3162..d2dc8421b08af3ca62f0111d36e8c69bfbeb8462 100644 (file)
@@ -7,16 +7,12 @@
 Order* allocOrder(OrderType type, Set * set){
        Order* order = (Order*)ourmalloc(sizeof(Order));
        order->set=set;
-       order->constraints = allocDefVectorBoolean();
+       allocInlineDefVectorBoolean(& order->constraints);
        order->type=type;
        return order;
 }
 
 void deleteOrder(Order* order){
-       uint size = getSizeVectorBoolean( order->constraints );
-       for(uint i=0; i<size; i++){
-               deleteBoolean( getVectorBoolean(order->constraints, i) );
-       }
-       deleteSet( order->set);
+       deleteVectorArrayBoolean(& order->constraints);
        ourfree(order);
 }
index 7d2bc3c52316f4d2f04932f3a1cfb925c517282c..93b2413a6f6e8c481ccfa60b0d320f725633a415 100644 (file)
@@ -7,7 +7,7 @@
 struct Order {
        OrderType type;
        Set * set;
-       VectorBoolean* constraints;
+       VectorBoolean constraints;
 };
 
 Order* allocOrder(OrderType type, Set * set);
index 9831cf21c6ddb7019895b14bae4fcfb20016765c..9a4c97a57a3e597afe3bd6847fdcd6be2b241920 100644 (file)
--- a/src/C.cfg
+++ b/src/C.cfg
@@ -12,4 +12,4 @@ sp_special_semi                           = ignore
 sp_before_semi                            = ignore
 sp_before_semi_for_empty                  = ignore
 sp_after_semi_for_empty                   = ignore
-sp_before_nl_cont                                                                                                      = ignore
\ No newline at end of file
+sp_before_nl_cont                        = ignore
\ No newline at end of file
index ef6ea465087445e5e9f9691e0f94d52c89922446..caa8a92bd9dfeaddf92b6df6b6e9291f206303bc 100644 (file)
@@ -11,5 +11,8 @@ int main(int numargs, char ** argv) {
        Element * inputs[]={e1, e2};
        Boolean * b=applyPredicate(solver, equals, inputs, 2);
        addBoolean(solver, b);
+       Order * o=createOrder(solver, TOTAL, s);
+       Boolean * oc=orderConstraint(solver, o, 1, 2);
+       addBoolean(solver, oc);
        deleteSolver(solver);
 }