162 lines
3.8 KiB
Plaintext
162 lines
3.8 KiB
Plaintext
|
To: vim-dev@vim.org
|
||
|
Subject: Patch 7.2.125
|
||
|
Fcc: outbox
|
||
|
From: Bram Moolenaar <Bram@moolenaar.net>
|
||
|
Mime-Version: 1.0
|
||
|
Content-Type: text/plain; charset=ISO-8859-1
|
||
|
Content-Transfer-Encoding: 8bit
|
||
|
------------
|
||
|
|
||
|
Patch 7.2.125
|
||
|
Problem: Leaking memory when reading XPM bitmap for a sign.
|
||
|
Solution: Don't allocate the memory twice. (Dominique Pelle)
|
||
|
Files: src/gui_x11.c
|
||
|
|
||
|
|
||
|
*** ../vim-7.2.124/src/gui_x11.c Wed Nov 12 13:07:48 2008
|
||
|
--- src/gui_x11.c Sun Feb 22 21:58:19 2009
|
||
|
***************
|
||
|
*** 1587,1592 ****
|
||
|
--- 1587,1594 ----
|
||
|
XtCloseDisplay(gui.dpy);
|
||
|
gui.dpy = NULL;
|
||
|
vimShell = (Widget)0;
|
||
|
+ vim_free(gui_argv);
|
||
|
+ gui_argv = NULL;
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
***************
|
||
|
*** 1761,1766 ****
|
||
|
--- 1763,1770 ----
|
||
|
* says that this isn't needed when exiting, so just skip it. */
|
||
|
XtCloseDisplay(gui.dpy);
|
||
|
#endif
|
||
|
+ vim_free(gui_argv);
|
||
|
+ gui_argv = NULL;
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
***************
|
||
|
*** 3439,3485 ****
|
||
|
char_u *signfile;
|
||
|
{
|
||
|
XpmAttributes attrs;
|
||
|
! XImage *sign;
|
||
|
int status;
|
||
|
|
||
|
/*
|
||
|
* Setup the color substitution table.
|
||
|
*/
|
||
|
- sign = NULL;
|
||
|
if (signfile[0] != NUL && signfile[0] != '-')
|
||
|
{
|
||
|
! sign = (XImage *)alloc(sizeof(XImage));
|
||
|
! if (sign != NULL)
|
||
|
{
|
||
|
! XpmColorSymbol color[5] =
|
||
|
! {
|
||
|
! {"none", NULL, 0},
|
||
|
! {"iconColor1", NULL, 0},
|
||
|
! {"bottomShadowColor", NULL, 0},
|
||
|
! {"topShadowColor", NULL, 0},
|
||
|
! {"selectColor", NULL, 0}
|
||
|
! };
|
||
|
! attrs.valuemask = XpmColorSymbols;
|
||
|
! attrs.numsymbols = 2;
|
||
|
! attrs.colorsymbols = color;
|
||
|
! attrs.colorsymbols[0].pixel = gui.back_pixel;
|
||
|
! attrs.colorsymbols[1].pixel = gui.norm_pixel;
|
||
|
! status = XpmReadFileToImage(gui.dpy, (char *)signfile,
|
||
|
&sign, NULL, &attrs);
|
||
|
!
|
||
|
! if (status == 0)
|
||
|
! {
|
||
|
! /* Sign width is fixed at two columns now.
|
||
|
! if (sign->width > gui.sign_width)
|
||
|
! gui.sign_width = sign->width + 8; */
|
||
|
! }
|
||
|
! else
|
||
|
! {
|
||
|
! vim_free(sign);
|
||
|
! sign = NULL;
|
||
|
! EMSG(_(e_signdata));
|
||
|
! }
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return (void *)sign;
|
||
|
--- 3443,3479 ----
|
||
|
char_u *signfile;
|
||
|
{
|
||
|
XpmAttributes attrs;
|
||
|
! XImage *sign = NULL;
|
||
|
int status;
|
||
|
|
||
|
/*
|
||
|
* Setup the color substitution table.
|
||
|
*/
|
||
|
if (signfile[0] != NUL && signfile[0] != '-')
|
||
|
{
|
||
|
! XpmColorSymbol color[5] =
|
||
|
{
|
||
|
! {"none", NULL, 0},
|
||
|
! {"iconColor1", NULL, 0},
|
||
|
! {"bottomShadowColor", NULL, 0},
|
||
|
! {"topShadowColor", NULL, 0},
|
||
|
! {"selectColor", NULL, 0}
|
||
|
! };
|
||
|
! attrs.valuemask = XpmColorSymbols;
|
||
|
! attrs.numsymbols = 2;
|
||
|
! attrs.colorsymbols = color;
|
||
|
! attrs.colorsymbols[0].pixel = gui.back_pixel;
|
||
|
! attrs.colorsymbols[1].pixel = gui.norm_pixel;
|
||
|
! status = XpmReadFileToImage(gui.dpy, (char *)signfile,
|
||
|
&sign, NULL, &attrs);
|
||
|
! if (status == 0)
|
||
|
! {
|
||
|
! /* Sign width is fixed at two columns now.
|
||
|
! if (sign->width > gui.sign_width)
|
||
|
! gui.sign_width = sign->width + 8; */
|
||
|
}
|
||
|
+ else
|
||
|
+ EMSG(_(e_signdata));
|
||
|
}
|
||
|
|
||
|
return (void *)sign;
|
||
|
***************
|
||
|
*** 3489,3496 ****
|
||
|
gui_mch_destroy_sign(sign)
|
||
|
void *sign;
|
||
|
{
|
||
|
! XFree(((XImage *)sign)->data);
|
||
|
! vim_free(sign);
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
--- 3483,3489 ----
|
||
|
gui_mch_destroy_sign(sign)
|
||
|
void *sign;
|
||
|
{
|
||
|
! XDestroyImage((XImage*)sign);
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
*** ../vim-7.2.124/src/version.c Mon Feb 23 00:53:35 2009
|
||
|
--- src/version.c Tue Feb 24 04:09:33 2009
|
||
|
***************
|
||
|
*** 678,679 ****
|
||
|
--- 678,681 ----
|
||
|
{ /* Add new patch number below this line */
|
||
|
+ /**/
|
||
|
+ 125,
|
||
|
/**/
|
||
|
|
||
|
--
|
||
|
I have a watch cat! Just break in and she'll watch.
|
||
|
|
||
|
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||
|
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||
|
\\\ download, build and distribute -- http://www.A-A-P.org ///
|
||
|
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|