diff --git a/7.2.446 b/7.2.446 new file mode 100644 index 0000000..b05e625 --- /dev/null +++ b/7.2.446 @@ -0,0 +1,91 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.446 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.446 +Problem: Crash in GUI when closing the last window in a tabpage. (ryo7000) +Solution: Remove the tabpage from the list before freeing the window. +Files: src/window.c + + +*** ../vim-7.2.445/src/window.c 2010-03-17 16:54:51.000000000 +0100 +--- src/window.c 2010-07-11 13:18:31.000000000 +0200 +*************** +*** 2304,2309 **** +--- 2304,2310 ---- + win_T *wp; + int dir; + tabpage_T *ptp = NULL; ++ int free_tp = FALSE; + + /* Close the link to the buffer. */ + close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0); +*************** +*** 2321,2331 **** + if (wp == NULL) + return; + +- /* Free the memory used for the window. */ +- wp = win_free_mem(win, &dir, tp); +- + /* When closing the last window in a tab page remove the tab page. */ +! if (wp == NULL) + { + if (tp == first_tabpage) + first_tabpage = tp->tp_next; +--- 2322,2329 ---- + if (wp == NULL) + return; + + /* When closing the last window in a tab page remove the tab page. */ +! if (tp == NULL ? firstwin == lastwin : tp->tp_firstwin == tp->tp_lastwin) + { + if (tp == first_tabpage) + first_tabpage = tp->tp_next; +*************** +*** 2341,2348 **** + } + ptp->tp_next = tp->tp_next; + } +! free_tabpage(tp); + } + } + + /* +--- 2339,2352 ---- + } + ptp->tp_next = tp->tp_next; + } +! free_tp = TRUE; + } ++ ++ /* Free the memory used for the window. */ ++ win_free_mem(win, &dir, tp); ++ ++ if (free_tp) ++ free_tabpage(tp); + } + + /* +*** ../vim-7.2.445/src/version.c 2010-07-07 18:20:21.000000000 +0200 +--- src/version.c 2010-07-12 21:36:05.000000000 +0200 +*************** +*** 683,684 **** +--- 683,686 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 446, + /**/ + +-- +Not too long ago, compress was something you did to garbage... + + /// 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 /// diff --git a/README.patches b/README.patches index 640dc4b..027cdc1 100644 --- a/README.patches +++ b/README.patches @@ -477,3 +477,4 @@ Individual patches for Vim 7.2: 3953 7.2.443 taglist() on tag file with duplicate fields causes int. error 2904 7.2.444 (after 7.2.442) can't build with GTK 1 6993 7.2.445 crash when using undo/redo and FileChangedRO autocmd + 2372 7.2.446 crash in GUI when closing the last window in a tabpage diff --git a/vim.spec b/vim.spec index 0f4d083..486f0fd 100644 --- a/vim.spec +++ b/vim.spec @@ -18,7 +18,7 @@ #used for pre-releases: %define beta %{nil} %define vimdir vim72%{?beta} -%define patchlevel 445 +%define patchlevel 446 Summary: The VIM editor URL: http://www.vim.org/ @@ -511,6 +511,7 @@ Patch442: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.442 Patch443: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.443 Patch444: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.444 Patch445: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.445 +Patch446: ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.446 Patch3000: vim-7.0-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1094,6 +1095,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch443 -p0 %patch444 -p0 %patch445 -p0 +%patch446 -p0 # install spell files @@ -1558,6 +1560,9 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/icons/hicolor/*/apps/* %changelog +* Tue Jul 13 2010 Karsten Hopp 7.2.446-1 +- patchlevel 446 + * Thu Jul 08 2010 Karsten Hopp 7.2.445-1 - patchlevel 445