components/vim/vim72-patches/7.2.305
changeset 379 c6a17bba1da3
parent 378 f0b61ed1d10d
child 380 e92b3b4a1c66
--- a/components/vim/vim72-patches/7.2.305	Thu Jul 07 19:05:29 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,105 +0,0 @@
-To: [email protected]
-Subject: Patch 7.2.305
-Fcc: outbox
-From: Bram Moolenaar <[email protected]>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.2.305
-Problem:    Recursively redrawing causes a memory leak. (Dominique Pelle)
-Solution:   Disallow recursive screen updating.
-Files:	    src/screen.c
-
-
-*** ../vim-7.2.304/src/screen.c	2009-11-11 17:07:25.000000000 +0100
---- src/screen.c	2009-11-17 16:30:53.000000000 +0100
-***************
-*** 323,328 ****
---- 323,329 ----
-      int		did_one;
-  #endif
-  
-+     /* Don't do anything if the screen structures are (not yet) valid. */
-      if (!screen_valid(TRUE))
-  	return;
-  
-***************
-*** 342,348 ****
-      if (curwin->w_lines_valid == 0 && type < NOT_VALID)
-  	type = NOT_VALID;
-  
-!     if (!redrawing())
-      {
-  	redraw_later(type);		/* remember type for next time */
-  	must_redraw = type;
---- 343,351 ----
-      if (curwin->w_lines_valid == 0 && type < NOT_VALID)
-  	type = NOT_VALID;
-  
-!     /* Postpone the redrawing when it's not needed and when being called
-!      * recursively. */
-!     if (!redrawing() || updating_screen)
-      {
-  	redraw_later(type);		/* remember type for next time */
-  	must_redraw = type;
-***************
-*** 582,587 ****
---- 585,591 ----
-  
-  /*
-   * Prepare for updating one or more windows.
-+  * Caller must check for "updating_screen" already set to avoid recursiveness.
-   */
-      static void
-  update_prepare()
-***************
-*** 663,669 ****
-  	    doit = TRUE;
-      }
-  
-!     if (!doit)
-  	return;
-  
-      /* update all windows that need updating */
---- 667,675 ----
-  	    doit = TRUE;
-      }
-  
-!     /* Return when there is nothing to do or screen updating already
-!      * happening. */
-!     if (!doit || updating_screen)
-  	return;
-  
-      /* update all windows that need updating */
-***************
-*** 696,701 ****
---- 702,711 ----
-  updateWindow(wp)
-      win_T	*wp;
-  {
-+     /* return if already busy updating */
-+     if (updating_screen)
-+ 	return;
-+ 
-      update_prepare();
-  
-  #ifdef FEAT_CLIPBOARD
-*** ../vim-7.2.304/src/version.c	2009-11-25 12:38:49.000000000 +0100
---- src/version.c	2009-11-25 13:01:48.000000000 +0100
-***************
-*** 683,684 ****
---- 683,686 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     305,
-  /**/
-
--- 
-If the Universe is constantly expanding, why can't I ever find a parking space?
-
- /// 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    ///