Fix leak
[satune.git] / src / Backend / inc_solver.c
index 5e1ed548ab31e487d958bc1fb293c840ffc0533b..307114ef4782acca1ae992328d40a94fba176df9 100644 (file)
@@ -27,6 +27,7 @@ void deleteIncrementalSolver(IncrementalSolver * This) {
        ourfree(This->buffer);
        if (This->solution != NULL)
                ourfree(This->solution);
+       ourfree(This);
 }
 
 void resetSolver(IncrementalSolver * This) {
@@ -42,6 +43,19 @@ void addClauseLiteral(IncrementalSolver * This, int literal) {
        }
 }
 
+void addArrayClauseLiteral(IncrementalSolver * This, uint numliterals, int * literals) {
+       for(uint i=0;i<numliterals; i++) {
+               This->buffer[This->offset++]=literals[i];
+               if (This->offset==IS_BUFFERSIZE) {
+                       flushBufferSolver(This);
+               }
+       }
+       This->buffer[This->offset++]=0;
+       if (This->offset==IS_BUFFERSIZE) {
+               flushBufferSolver(This);
+       }
+}
+
 void finishedClauses(IncrementalSolver * This) {
        addClauseLiteral(This, 0);
 }