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

Patch 7.3.916

Expand Messages
  • Bram Moolenaar
    Patch 7.3.916 Problem: Using freed memory when pasting with the mouse (Issue 130). Solution: Get the byte value early. (hint by Dominique Pelle) Files:
    Message 1 of 1 , Apr 24, 2013
    • 0 Attachment
      Patch 7.3.916
      Problem: Using freed memory when pasting with the mouse (Issue 130).
      Solution: Get the byte value early. (hint by Dominique Pelle)
      Files: src/buffer.c


      *** ../vim-7.3.915/src/buffer.c 2013-04-15 12:27:30.000000000 +0200
      --- src/buffer.c 2013-04-24 16:45:38.000000000 +0200
      ***************
      *** 3506,3512 ****
      char_u *p;
      char_u *s;
      char_u *t;
      ! char_u *linecont;
      #ifdef FEAT_EVAL
      win_T *o_curwin;
      buf_T *o_curbuf;
      --- 3506,3512 ----
      char_u *p;
      char_u *s;
      char_u *t;
      ! int byteval;
      #ifdef FEAT_EVAL
      win_T *o_curwin;
      buf_T *o_curbuf;
      ***************
      *** 3573,3584 ****
      fillchar = '-';
      #endif

      ! /*
      ! * Get line & check if empty (cursorpos will show "0-1").
      ! * If inversion is possible we use it. Else '=' characters are used.
      ! */
      ! linecont = ml_get_buf(wp->w_buffer, wp->w_cursor.lnum, FALSE);
      ! empty_line = (*linecont == NUL);

      groupdepth = 0;
      p = out;
      --- 3573,3593 ----
      fillchar = '-';
      #endif

      ! /* Get line & check if empty (cursorpos will show "0-1"). Note that
      ! * p will become invalid when getting another buffer line. */
      ! p = ml_get_buf(wp->w_buffer, wp->w_cursor.lnum, FALSE);
      ! empty_line = (*p == NUL);
      !
      ! /* Get the byte value now, in case we need it below. This is more
      ! * efficient than making a copy of the line. */
      ! if (wp->w_cursor.col > (colnr_T)STRLEN(p))
      ! byteval = 0;
      ! else
      ! #ifdef FEAT_MBYTE
      ! byteval = (*mb_ptr2char)(p + wp->w_cursor.col);
      ! #else
      ! byteval = p[wp->w_cursor.col];
      ! #endif

      groupdepth = 0;
      p = out;
      ***************
      *** 3956,3971 ****
      case STL_BYTEVAL_X:
      base = 'X';
      case STL_BYTEVAL:
      ! if (wp->w_cursor.col > (colnr_T)STRLEN(linecont))
      ! num = 0;
      ! else
      ! {
      ! #ifdef FEAT_MBYTE
      ! num = (*mb_ptr2char)(linecont + wp->w_cursor.col);
      ! #else
      ! num = linecont[wp->w_cursor.col];
      ! #endif
      ! }
      if (num == NL)
      num = 0;
      else if (num == CAR && get_fileformat(wp->w_buffer) == EOL_MAC)
      --- 3965,3971 ----
      case STL_BYTEVAL_X:
      base = 'X';
      case STL_BYTEVAL:
      ! num = byteval;
      if (num == NL)
      num = 0;
      else if (num == CAR && get_fileformat(wp->w_buffer) == EOL_MAC)
      *** ../vim-7.3.915/src/version.c 2013-04-24 16:33:58.000000000 +0200
      --- src/version.c 2013-04-24 16:51:24.000000000 +0200
      ***************
      *** 730,731 ****
      --- 730,733 ----
      { /* Add new patch number below this line */
      + /**/
      + 916,
      /**/

      --
      hundred-and-one symptoms of being an internet addict:
      228. You spend Saturday night making the counter on your home page
      pass that 2000 mark.

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

      ---
      You received this message because you are subscribed to the Google Groups "vim_dev" group.
      To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscribe@....
      For more options, visit https://groups.google.com/groups/opt_out.
    Your message has been successfully submitted and would be delivered to recipients shortly.