diff lwlib/lwlib.c @ 424:11054d720c21 r21-2-20

Import from CVS: tag r21-2-20
author cvs
date Mon, 13 Aug 2007 11:26:11 +0200
parents 41dbb7a9d5f2
children
line wrap: on
line diff
--- a/lwlib/lwlib.c	Mon Aug 13 11:25:03 2007 +0200
+++ b/lwlib/lwlib.c	Mon Aug 13 11:26:11 2007 +0200
@@ -125,8 +125,6 @@
   widget_value_free_list = wv;
 }
 
-static void free_widget_value_tree (widget_value *wv);
-
 static void
 free_widget_value_contents (widget_value *wv)
 {
@@ -155,11 +153,13 @@
       free_widget_value_tree (wv->contents);
       wv->contents = (widget_value *) 0xDEADBEEF;
     }
-  if (wv->args && wv->free_args)
+  if (wv->args && wv->nargs)
     {
-      free (wv->args);
-      wv->args = (void *) 0xDEADBEEF;
+      if (wv->free_args)
+	free (wv->args);
+      wv->args = (ArgList) 0xDEADBEEF;
       wv->nargs = 0;
+      wv->free_args = 0;
     }
   if (wv->next)
     {
@@ -168,7 +168,7 @@
     }
 }
 
-static void
+void
 free_widget_value_tree (widget_value *wv)
 {
   if (!wv)
@@ -1326,3 +1326,4 @@
       *offset += wv->nargs;
     }
 }
+