File tree Expand file tree Collapse file tree 1 file changed +7
-5
lines changed Expand file tree Collapse file tree 1 file changed +7
-5
lines changed Original file line number Diff line number Diff line change @@ -156,11 +156,13 @@ var_p_t uds_resolve_fields(const var_p_t var_p) {
156156/**
157157 * free any owned variable in element
158158 */
159- void var_free (uds_field_s * element ) {
159+ void var_free (uds_field_s * element , int erase ) {
160160 if (element -> var_owner_flag ) {
161161 v_free (element -> var );
162- tmp_free (element -> var );
163- element -> var = NULL ;
162+ if (erase ) {
163+ tmp_free (element -> var );
164+ element -> var = NULL ;
165+ }
164166 }
165167}
166168
@@ -170,7 +172,7 @@ void var_free(uds_field_s* element) {
170172void uds_clear (const var_p_t var ) {
171173 uds_field_s * next = var -> v .uds ;
172174 while (next ) {
173- var_free (next );
175+ var_free (next , 0 );
174176 next = next -> next ;
175177 }
176178}
@@ -181,7 +183,7 @@ void uds_clear(const var_p_t var) {
181183void uds_free_element (uds_field_s * element ) {
182184 if (element ) {
183185 uds_free_element (element -> next );
184- var_free (element );
186+ var_free (element , 1 );
185187 tmp_free (element );
186188 }
187189}
You can’t perform that action at this time.
0 commit comments