]> granicus.if.org Git - vim/commitdiff
updated for version 7.2.359 v7.2.359
authorBram Moolenaar <Bram@vim.org>
Thu, 11 Feb 2010 17:54:43 +0000 (18:54 +0100)
committerBram Moolenaar <Bram@vim.org>
Thu, 11 Feb 2010 17:54:43 +0000 (18:54 +0100)
Problem:    Crash when using the Netbeans join command.
Solution:   Make sure the ml_flush_line() function is not used recursively.
            (Xavier de Gaye)

src/memline.c
src/version.c

index 480e93cf640a9dc53236bf9b9dda5ba50dae87a3..29a6e5cca374bbd393392b1101ce4b2d141b8769 100644 (file)
@@ -3087,12 +3087,19 @@ ml_flush_line(buf)
     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,6 +3167,8 @@ ml_flush_line(buf)
            }
        }
        vim_free(new_line);
+
+       entered = FALSE;
     }
 
     buf->b_ml.ml_line_lnum = 0;
index d71cbbc27358889799c5aa376da518218b7a2bbb..5ffee97d2259e44f19970b8ed82586f2f50098fa 100644 (file)
@@ -681,6 +681,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    359,
 /**/
     358,
 /**/