@@ -133,18 +133,21 @@ void InputQueryBuilder::generateQuery( IQuery &query )
133133 query.markInputVariable ( inputVar, i );
134134 i++;
135135 }
136+ _inputVars.clear ();
136137
137138 int j = 0 ;
138139 for ( Variable outputVar : _outputVars )
139140 {
140141 query.markOutputVariable ( outputVar, j );
141142 j++;
142143 }
144+ _outputVars.clear ();
143145
144146 for ( Equation equation : _equationList )
145147 {
146148 query.addEquation ( equation );
147149 }
150+ _equationList.clear ();
148151
149152 for ( ReluConstraint *constraintPtr : _reluList )
150153 {
@@ -154,6 +157,7 @@ void InputQueryBuilder::generateQuery( IQuery &query )
154157 } );
155158 query.addPiecewiseLinearConstraint ( constraintPtr );
156159 }
160+ _reluList.clear ();
157161
158162 for ( LeakyReluConstraint *constraintPtr : _leakyReluList )
159163 {
@@ -163,6 +167,7 @@ void InputQueryBuilder::generateQuery( IQuery &query )
163167 } );
164168 query.addPiecewiseLinearConstraint ( constraintPtr );
165169 }
170+ _leakyReluList.clear ();
166171
167172 for ( SigmoidConstraint *constraintPtr : _sigmoidList )
168173 {
@@ -172,6 +177,7 @@ void InputQueryBuilder::generateQuery( IQuery &query )
172177 } );
173178 query.addNonlinearConstraint ( constraintPtr );
174179 }
180+ _sigmoidList.clear ();
175181
176182 for ( MaxConstraint *constraintPtr : _maxList )
177183 {
@@ -185,6 +191,7 @@ void InputQueryBuilder::generateQuery( IQuery &query )
185191 } );
186192 query.addPiecewiseLinearConstraint ( constraintPtr );
187193 }
194+ _maxList.clear ();
188195
189196 for ( AbsoluteValueConstraint *constraintPtr : _absList )
190197 {
@@ -194,6 +201,7 @@ void InputQueryBuilder::generateQuery( IQuery &query )
194201 } );
195202 query.addPiecewiseLinearConstraint ( constraintPtr );
196203 }
204+ _absList.clear ();
197205
198206 for ( SignConstraint *constraintPtr : _signList )
199207 {
@@ -203,6 +211,7 @@ void InputQueryBuilder::generateQuery( IQuery &query )
203211 } );
204212 query.addPiecewiseLinearConstraint ( constraintPtr );
205213 }
214+ _signList.clear ();
206215
207216 // TODO check this last two
208217 for ( std::pair<Variable, float > lower : _lowerBounds )
@@ -231,3 +240,42 @@ Equation *InputQueryBuilder::findEquationWithOutputVariable( Variable variable )
231240 }
232241 return NULL ;
233242}
243+
244+ InputQueryBuilder::~InputQueryBuilder ()
245+ {
246+ for ( ReluConstraint *constraintPtr : _reluList )
247+ {
248+ delete constraintPtr;
249+ }
250+ _reluList = {};
251+
252+ for ( LeakyReluConstraint *constraintPtr : _leakyReluList )
253+ {
254+ delete constraintPtr;
255+ }
256+ _leakyReluList = {};
257+
258+ for ( SigmoidConstraint *constraintPtr : _sigmoidList )
259+ {
260+ delete constraintPtr;
261+ }
262+ _sigmoidList = {};
263+
264+ for ( MaxConstraint *constraintPtr : _maxList )
265+ {
266+ delete constraintPtr;
267+ }
268+ _maxList = {};
269+
270+ for ( AbsoluteValueConstraint *constraintPtr : _absList )
271+ {
272+ delete constraintPtr;
273+ }
274+ _absList = {};
275+
276+ for ( SignConstraint *constraintPtr : _signList )
277+ {
278+ delete constraintPtr;
279+ }
280+ _signList = {};
281+ }
0 commit comments