mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-19 10:22:27 +00:00
Fix memory leaks (from YAMAMOTO Mitsuharu)
This commit is contained in:
parent
c1f0671ae9
commit
96f09305d6
@ -1,5 +1,13 @@
|
||||
2003-10-05 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
|
||||
|
||||
* frame.c (Fdelete_frame): Free decode_mode_spec_buffer.
|
||||
|
||||
* xterm.c (x_delete_display): Free font names and font_encoder
|
||||
in dpyinfo->font_table.
|
||||
|
||||
* xfns.c (Fx_close_connection): Only call XFreeFont here. xfree
|
||||
of font names moved to x_delete_display.
|
||||
|
||||
* xterm.h (struct x_display_info): New member, wm_type.
|
||||
(struct x_output): New members, expected_top/left and
|
||||
check_expected_move.
|
||||
|
@ -1279,6 +1279,8 @@ The functions are run with one arg, the frame to be deleted. */)
|
||||
|
||||
if (f->namebuf)
|
||||
xfree (f->namebuf);
|
||||
if (f->decode_mode_spec_buffer)
|
||||
xfree (f->decode_mode_spec_buffer);
|
||||
if (FRAME_INSERT_COST (f))
|
||||
xfree (FRAME_INSERT_COST (f));
|
||||
if (FRAME_DELETEN_COST (f))
|
||||
|
@ -4212,9 +4212,6 @@ If DISPLAY is nil, that stands for the selected frame's display. */)
|
||||
for (i = 0; i < dpyinfo->n_fonts; i++)
|
||||
if (dpyinfo->font_table[i].name)
|
||||
{
|
||||
if (dpyinfo->font_table[i].name != dpyinfo->font_table[i].full_name)
|
||||
xfree (dpyinfo->font_table[i].full_name);
|
||||
xfree (dpyinfo->font_table[i].name);
|
||||
XFreeFont (dpyinfo->display, dpyinfo->font_table[i].font);
|
||||
}
|
||||
|
||||
|
14
src/xterm.c
14
src/xterm.c
@ -10649,6 +10649,8 @@ void
|
||||
x_delete_display (dpyinfo)
|
||||
struct x_display_info *dpyinfo;
|
||||
{
|
||||
int i;
|
||||
|
||||
delete_keyboard_wait_descriptor (dpyinfo->connection);
|
||||
|
||||
/* Discard this display from x_display_name_list and x_display_list.
|
||||
@ -10700,6 +10702,18 @@ x_delete_display (dpyinfo)
|
||||
xim_close_dpy (dpyinfo);
|
||||
#endif
|
||||
|
||||
/* Free the font names in the font table. */
|
||||
for (i = 0; i < dpyinfo->n_fonts; i++)
|
||||
if (dpyinfo->font_table[i].name)
|
||||
{
|
||||
if (dpyinfo->font_table[i].name != dpyinfo->font_table[i].full_name)
|
||||
xfree (dpyinfo->font_table[i].full_name);
|
||||
xfree (dpyinfo->font_table[i].name);
|
||||
}
|
||||
|
||||
if (dpyinfo->font_table->font_encoder)
|
||||
xfree (dpyinfo->font_table->font_encoder);
|
||||
|
||||
xfree (dpyinfo->font_table);
|
||||
xfree (dpyinfo->x_id_name);
|
||||
xfree (dpyinfo->color_cells);
|
||||
|
Loading…
Reference in New Issue
Block a user