To: vim-dev@vim.org Subject: Patch 7.2.207 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 7.2.207 Problem: Using freed memory with ":redrawstatus" when it works recursively. Solution: Prevent recursively updating the status line. (partly by Dominique Pelle) Files: src/screen.c *** ../vim-7.2.206/src/screen.c 2009-06-16 16:01:34.000000000 +0200 --- src/screen.c 2009-06-16 17:04:53.000000000 +0200 *************** *** 5743,5748 **** --- 5743,5755 ---- int fillchar; int attr; int this_ru_col; + static int busy = FALSE; + + /* It's possible to get here recursively when 'statusline' (indirectly) + * invokes ":redrawstatus". Simply ignore the call then. */ + if (busy) + return; + busy = TRUE; wp->w_redr_status = FALSE; if (wp->w_status_height == 0) *************** *** 5881,5886 **** --- 5888,5894 ---- attr); } #endif + busy = FALSE; } #ifdef FEAT_STL_OPT *** ../vim-7.2.206/src/version.c 2009-06-16 16:57:53.000000000 +0200 --- src/version.c 2009-06-16 17:21:56.000000000 +0200 *************** *** 678,679 **** --- 678,681 ---- { /* Add new patch number below this line */ + /**/ + 207, /**/ -- In many of the more relaxed civilizations on the Outer Eastern Rim of the Galaxy, "The Hitchhiker's Guide to the Galaxy" has already supplanted the great "Encyclopedia Galactica" as the standard repository of all knowledge and wisdom, for though it has many omissions and contains much that is apocryphal, or at least wildly inaccurate, it scores over the older, more pedestrian work in two important respects. First, it is slightly cheaper; and second, it has the words "DON'T PANIC" inscribed in large friendly letters on its cover. -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy" /// 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 ///