Loading ...
Sorry, an error occurred while loading the content.

Patch 7.3.765

Expand Messages
  • Bram Moolenaar
    Patch 7.3.765 Problem: Segfault when doing cclose on BufUnload in a python function. (Sean Reifschneider) Solution: Skip window with NULL buffer.
    Message 1 of 1 , Jan 17, 2013
    • 0 Attachment
      Patch 7.3.765
      Problem: Segfault when doing "cclose" on BufUnload in a python function.
      (Sean Reifschneider)
      Solution: Skip window with NULL buffer. (Christian Brabandt)
      Files: src/main.c, src/window.c


      *** ../vim-7.3.764/src/main.c 2012-11-28 15:55:37.000000000 +0100
      --- src/main.c 2013-01-17 13:46:57.000000000 +0100
      ***************
      *** 1376,1381 ****
      --- 1376,1384 ----
      for (wp = (tp == curtab)
      ? firstwin : tp->tp_firstwin; wp != NULL; wp = wp->w_next)
      {
      + if (wp->w_buffer == NULL)
      + /* Autocmd must have close the buffer already, skip. */
      + continue;
      buf = wp->w_buffer;
      if (buf->b_changedtick != -1)
      {
      *** ../vim-7.3.764/src/window.c 2012-08-29 15:50:22.000000000 +0200
      --- src/window.c 2013-01-17 13:53:10.000000000 +0100
      ***************
      *** 2276,2284 ****
      #endif
      }

      /* Autocommands may have closed the window already, or closed the only
      * other window or moved to another tab page. */
      ! if (!win_valid(win) || last_window() || curtab != prev_curtab
      || close_last_window_tabpage(win, free_buf, prev_curtab))
      return;

      --- 2276,2290 ----
      #endif
      }

      + if (only_one_window() && win_valid(win) && win->w_buffer == NULL
      + && (last_window() || curtab != prev_curtab
      + || close_last_window_tabpage(win, free_buf, prev_curtab)))
      + /* Autocommands have close all windows, quit now. */
      + getout(0);
      +
      /* Autocommands may have closed the window already, or closed the only
      * other window or moved to another tab page. */
      ! else if (!win_valid(win) || last_window() || curtab != prev_curtab
      || close_last_window_tabpage(win, free_buf, prev_curtab))
      return;

      ***************
      *** 6282,6288 ****
      return FALSE;

      for (wp = firstwin; wp != NULL; wp = wp->w_next)
      ! if ((!((wp->w_buffer->b_help && !curbuf->b_help)
      # ifdef FEAT_QUICKFIX
      || wp->w_p_pvw
      # endif
      --- 6288,6295 ----
      return FALSE;

      for (wp = firstwin; wp != NULL; wp = wp->w_next)
      ! if (wp->w_buffer != NULL
      ! && (!((wp->w_buffer->b_help && !curbuf->b_help)
      # ifdef FEAT_QUICKFIX
      || wp->w_p_pvw
      # endif
      *** ../vim-7.3.764/src/version.c 2013-01-17 13:35:13.000000000 +0100
      --- src/version.c 2013-01-17 13:56:56.000000000 +0100
      ***************
      *** 727,728 ****
      --- 727,730 ----
      { /* Add new patch number below this line */
      + /**/
      + 765,
      /**/

      --
      He was not in the least bit scared to be mashed into a pulp
      Or to have his eyes gouged out and his elbows broken;
      To have his kneecaps split and his body burned away
      And his limbs all hacked and mangled, brave Sir Robin.
      "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD

      /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
      /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
      \\\ an exciting new programming language -- http://www.Zimbu.org ///
      \\\ help me help AIDS victims -- http://ICCF-Holland.org ///

      --
      You received this message from the "vim_dev" maillist.
      Do not top-post! Type your reply below the text you are replying to.
      For more information, visit http://www.vim.org/maillist.php
    Your message has been successfully submitted and would be delivered to recipients shortly.