diff options
author | Richard M. Stallman <rms@gnu.org> | 1994-02-19 20:53:26 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 1994-02-19 20:53:26 +0000 |
commit | 364e6904f33db6725c8ae0fa3853e7b9c3b5b218 (patch) | |
tree | f0f0c801a4073f68d0a024aa15ea3c59327861bb /lwlib/lwlib-Xlw.c | |
parent | ffab2bd62ccd45c33060f48788b52be32b5f158b (diff) | |
download | emacs-364e6904f33db6725c8ae0fa3853e7b9c3b5b218.tar.gz |
*** empty log message ***
Diffstat (limited to 'lwlib/lwlib-Xlw.c')
-rw-r--r-- | lwlib/lwlib-Xlw.c | 47 |
1 files changed, 28 insertions, 19 deletions
diff --git a/lwlib/lwlib-Xlw.c b/lwlib/lwlib-Xlw.c index e07ee19c7bf..4b48b231a4d 100644 --- a/lwlib/lwlib-Xlw.c +++ b/lwlib/lwlib-Xlw.c @@ -78,19 +78,24 @@ xlw_create_menubar (instance) { Widget widget; - widget_value *tem = malloc_widget_value (); + /* Don't use malloc_widget_value, because the freeing will be done by free. + (Also it wastes time calling memset). */ + widget_value *tem = (widget_value *) malloc (sizeof (widget_value)); /* _XtCreate is freeing the object we passed, so make a copy that we free later. */ bcopy (instance->info->val, tem, sizeof (widget_value)); - widget = - XtVaCreateWidget (instance->info->name, xlwMenuWidgetClass, - instance->parent, - XtNmenu, tem, - 0); + widget + = XtVaCreateWidget (instance->info->name, xlwMenuWidgetClass, + instance->parent, + XtNmenu, tem, + 0); +#if 0 /* XtVaCreateWidget frees this, at least in the X11R4 + version that is running on mole.gnu.ai.mit.edu. */ free_widget_value (tem); +#endif XtAddCallback (widget, XtNopen, pre_hook, (XtPointer)instance); XtAddCallback (widget, XtNselect, pick_hook, (XtPointer)instance); @@ -101,26 +106,30 @@ static Widget xlw_create_popup_menu (instance) widget_instance* instance; { - Widget popup_shell = - XtCreatePopupShell (instance->info->name, overrideShellWidgetClass, - instance->parent, NULL, 0); + Widget popup_shell + = XtCreatePopupShell (instance->info->name, overrideShellWidgetClass, + instance->parent, NULL, 0); Widget widget; - widget_value *tem = malloc_widget_value (); + /* Don't use malloc_widget_value, because the freeing will be done by free. + (Also it wastes time calling memset). */ + widget_value *tem = (widget_value *) malloc (sizeof (widget_value)); /* _XtCreate is freeing the object we passed, so make a copy that we free later. */ bcopy (instance->info->val, tem, sizeof (widget_value)); - widget = - XtVaCreateManagedWidget ("popup", xlwMenuWidgetClass, - popup_shell, - XtNmenu, tem, - XtNhorizontal, False, - 0); + widget + = XtVaCreateManagedWidget ("popup", xlwMenuWidgetClass, + popup_shell, + XtNmenu, tem, + XtNhorizontal, False, + 0); +#if 0 free_widget_value (tem); +#endif XtAddCallback (widget, XtNselect, pick_hook, (XtPointer)instance); @@ -140,12 +149,12 @@ lw_lucid_widget_p (widget) Widget widget; { WidgetClass the_class = XtClass (widget); + if (the_class == xlwMenuWidgetClass) return True; if (the_class == overrideShellWidgetClass) - return - XtClass (((CompositeWidget)widget)->composite.children [0]) - == xlwMenuWidgetClass; + return (XtClass (((CompositeWidget)widget)->composite.children [0]) + == xlwMenuWidgetClass); return False; } |