lwlib-Xm.c: Fixed memory leak for menus.

This commit is contained in:
Jan Djärv 2003-01-26 13:06:48 +00:00
parent 942da20ceb
commit d0bdb0602c
2 changed files with 13 additions and 2 deletions

View file

@ -1,3 +1,8 @@
2003-01-26 Jan D. <jan.h.d@swipnet.se>
* lwlib-Xm.c (update_one_menu_entry): Deallocate widget_list.
(destroy_all_children): Call it self to destroy sub menu children.
2002-12-22 Richard M. Stallman <rms@gnu.org>
* xlwmenu.c (pop_new_stack_if_no_contents): Do nothing if

View file

@ -268,7 +268,10 @@ destroy_all_children (widget, first_child_to_destroy)
XtSetArg (al[0], XmNsubMenuId, &submenu);
XtGetValues (children[i], al, 1);
if (submenu)
XtDestroyWidget (submenu);
{
destroy_all_children (submenu, 0);
XtDestroyWidget (submenu);
}
XtDestroyWidget (children[i]);
}
@ -734,6 +737,9 @@ update_one_menu_entry (instance, widget, val, deep_p)
(XtPointer)instance);
XtManageChild (button);
}
if (widget_list)
XtFree ((char*) widget_list);
}
}
else if (!contents)
@ -813,7 +819,7 @@ xm_update_menu (instance, widget, val, deep_p)
{
destroy_all_children (widget, num_children_to_keep);
make_menu_in_widget (instance, widget, val->contents,
num_children_to_keep);
num_children_to_keep);
}
XtFree ((char *) children);