Blob Blame History Raw
To: vim-dev@vim.org
Subject: Patch 7.2.359
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------

Patch 7.2.359
Problem:    Crash when using the Netbeans join command.
Solution:   Make sure the ml_flush_line() function is not used recursively.
	    (Xavier de Gaye)
Files:	    src/memline.c


*** ../vim-7.2.358/src/memline.c	2009-11-17 17:13:03.000000000 +0100
--- src/memline.c	2010-02-11 18:47:48.000000000 +0100
***************
*** 3087,3098 ****
--- 3087,3105 ----
      int		start;
      int		count;
      int		i;
+     static int  entered = FALSE;
  
      if (buf->b_ml.ml_line_lnum == 0 || buf->b_ml.ml_mfp == NULL)
  	return;		/* nothing to do */
  
      if (buf->b_ml.ml_flags & ML_LINE_DIRTY)
      {
+ 	/* This code doesn't work recursively, but Netbeans may call back here
+ 	 * when obtaining the cursor position. */
+ 	if (entered)
+ 	    return;
+ 	entered = TRUE;
+ 
  	lnum = buf->b_ml.ml_line_lnum;
  	new_line = buf->b_ml.ml_line_ptr;
  
***************
*** 3160,3165 ****
--- 3167,3174 ----
  	    }
  	}
  	vim_free(new_line);
+ 
+ 	entered = FALSE;
      }
  
      buf->b_ml.ml_line_lnum = 0;
*** ../vim-7.2.358/src/version.c	2010-02-11 18:19:32.000000000 +0100
--- src/version.c	2010-02-11 18:53:55.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
  {   /* Add new patch number below this line */
+ /**/
+     359,
  /**/

-- 
Your fault: core dumped

 /// 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    ///