summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Djärv <jan.h.d@swipnet.se>2003-01-27 18:47:01 +0000
committerJan Djärv <jan.h.d@swipnet.se>2003-01-27 18:47:01 +0000
commitf086b1b603ce15825abf0f83d6f1bb09e2116dc7 (patch)
treeb50b24380cbcbb0d8168e53b0190eb3d169873c3
parentb5d27d5ddb32c33700752f0b1023f36d55aaf568 (diff)
downloademacs-f086b1b603ce15825abf0f83d6f1bb09e2116dc7.tar.gz
lwlib-Xm.c: Fixed memory leak for menus.
-rw-r--r--lwlib/ChangeLog6
-rw-r--r--lwlib/lwlib-Xm.c8
2 files changed, 13 insertions, 1 deletions
diff --git a/lwlib/ChangeLog b/lwlib/ChangeLog
index 1f7338784ce..6193f8ecf99 100644
--- a/lwlib/ChangeLog
+++ b/lwlib/ChangeLog
@@ -1,3 +1,9 @@
+2003-01-27 Jan Dj,Ad(Brv <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-03-16 Eli Zaretskii <eliz@is.elta.co.il>
* Version 21.2 released.
diff --git a/lwlib/lwlib-Xm.c b/lwlib/lwlib-Xm.c
index 766d3554e24..8aa08187e4c 100644
--- a/lwlib/lwlib-Xm.c
+++ b/lwlib/lwlib-Xm.c
@@ -265,7 +265,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]);
}
@@ -731,6 +734,9 @@ update_one_menu_entry (instance, widget, val, deep_p)
(XtPointer)instance);
XtManageChild (button);
}
+
+ if (widget_list)
+ XtFree ((char*) widget_list);
}
}
else if (!contents)