diff --git a/src/frontend/variable.c b/src/frontend/variable.c index 91d6805b9..f853a7003 100644 --- a/src/frontend/variable.c +++ b/src/frontend/variable.c @@ -404,20 +404,14 @@ cp_setparse(wordlist *wl) void free_struct_variable(struct variable *v) { - struct variable *tv, *tvv; - - if(!v) - return; - - tv = v; - while(tv) { - tvv = tv->va_next; - if(tv->va_type == CP_LIST) - free_struct_variable(tv->va_vlist); - if(tv->va_type == CP_STRING) - tfree(tv->va_string); - tfree(tv); - tv = tvv; + while(v) { + struct variable *next_v = v->va_next; + if(v->va_type == CP_LIST) + free_struct_variable(v->va_vlist); + if(v->va_type == CP_STRING) + tfree(v->va_string); + tfree(v); + v = next_v; } }