summaryrefslogtreecommitdiffstats
path: root/server/parser
diff options
context:
space:
mode:
authorDavid Sommerseth <davids@redhat.com>2009-11-10 13:58:37 +0100
committerDavid Sommerseth <davids@redhat.com>2009-11-10 13:58:37 +0100
commitfc05911e5e2e810796f2aa7f07d3b12c51e5cf35 (patch)
tree0c42f2826c3444e652125e01486226aab20ac601 /server/parser
parent20f464f64d02def70d3333e8130b38c3cda393a8 (diff)
downloadrteval-fc05911e5e2e810796f2aa7f07d3b12c51e5cf35.tar.gz
rteval-fc05911e5e2e810796f2aa7f07d3b12c51e5cf35.tar.xz
rteval-fc05911e5e2e810796f2aa7f07d3b12c51e5cf35.zip
Avoid recursion calls in do_free_vals()
Diffstat (limited to 'server/parser')
-rw-r--r--server/parser/eurephia_values.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/server/parser/eurephia_values.c b/server/parser/eurephia_values.c
index dbdbc13..d13bb3f 100644
--- a/server/parser/eurephia_values.c
+++ b/server/parser/eurephia_values.c
@@ -43,12 +43,17 @@
* @param vls Pointer to a eurephiaVALUES stack.
*/
static inline void do_free_vals(eurephiaVALUES *vls) {
- if( vls->next != NULL ) {
- do_free_vals(vls->next);
- }
- free_nullsafe(vls->key);
- free_nullsafe(vls->val);
- free_nullsafe(vls);
+ eurephiaVALUES *ptr = NULL, *ptr_next = NULL;
+
+ ptr = vls;
+ while( ptr ) {
+ free_nullsafe(ptr->key);
+ free_nullsafe(ptr->val);
+
+ ptr_next = ptr->next;
+ free_nullsafe(ptr);
+ ptr = ptr_next;
+ }
}