Author: adamg                        Date: Sun Mar  1 01:55:42 2009 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- new

---- Files affected:
SOURCES:
   7.2.125 (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/7.2.125
diff -u /dev/null SOURCES/7.2.125:1.1
--- /dev/null   Sun Mar  1 02:55:43 2009
+++ SOURCES/7.2.125     Sun Mar  1 02:55:36 2009
@@ -0,0 +1,161 @@
+To: [email protected]
+Subject: Patch 7.2.125
+Fcc: outbox
+From: Bram Moolenaar <[email protected]>
+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 -- [email protected] -- 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    ///
================================================================
_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to