From: Karl Heuer Date: Wed, 19 Apr 1995 21:04:01 +0000 (+0000) Subject: (x_window): Use (or reuse) frame's namebuf instead of a X-Git-Tag: emacs-19.34~4362 X-Git-Url: https://code.delx.au/gnu-emacs/commitdiff_plain/cca176a050c1a7a4ce91206f64b4f8bb0febfe58 (x_window): Use (or reuse) frame's namebuf instead of a temp var. This avoids a storage leak. --- diff --git a/src/xfns.c b/src/xfns.c index 19fc63ed7d..28208a874f 100644 --- a/src/xfns.c +++ b/src/xfns.c @@ -2325,27 +2325,21 @@ x_window (f, window_prompting, minibuffer_only) Widget shell_widget; Widget pane_widget; Widget frame_widget; - char* name; Arg al [25]; int ac; BLOCK_INPUT; - if (STRINGP (f->name)) - { - /* This is a storage leak, but unless people create - thousands of frames, that's ok. - Fix it later by making a new slot in the frame to hold this. */ - name = (char *) xmalloc (XSTRING (f->name)->size + 1); - bcopy (XSTRING (f->name)->data, name, XSTRING (f->name)->size + 1); - } - else - name = "emacs"; + { + char *str = (STRINGP (f->name) ? XSTRING (f->name)->data : "emacs"); + f->namebuf = (char *) xrealloc (f->namebuf, strlen (str) + 1); + strcpy (f->namebuf, str); + } ac = 0; XtSetArg (al[ac], XtNallowShellResize, 1); ac++; XtSetArg (al[ac], XtNinput, 1); ac++; - shell_widget = XtAppCreateShell (name, EMACS_CLASS, + shell_widget = XtAppCreateShell (f->namebuf, EMACS_CLASS, topLevelShellWidgetClass, FRAME_X_DISPLAY (f), al, ac); @@ -2373,7 +2367,7 @@ x_window (f, window_prompting, minibuffer_only) XtSetArg (al[ac], XtNallowResize, 1); ac++; XtSetArg (al[ac], XtNresizeToPreferred, 1); ac++; XtSetArg (al[ac], XtNemacsFrame, f); ac++; - frame_widget = XtCreateWidget (name, + frame_widget = XtCreateWidget (f->namebuf, emacsFrameClass, pane_widget, al, ac); lw_set_main_areas (pane_widget, f->display.x->menubar_widget, frame_widget);