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

Re: [patch] Fix E315 internal error

Expand Messages
  • Bram Moolenaar
    ... Thanks, I have added it to the todo list. -- Your fault: core dumped /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net ///
    Message 1 of 2 , Dec 31, 2012
    • 0 Attachment
      Lech Lorens wrote:

      > The attached patch fixes an E315 error that occurs for me sometimes
      > when I work in Athena gvim under Cygwin.
      > The stack trace when the problem occurs is as follows:
      >
      > #0 ml_get_buf (buf=0x8005b6e8, lnum=124, will_change=0) at memline.c:2435
      > #1 0x0049a8ad in ml_get_pos (pos=0x289cb4) at memline.c:2388
      > #2 0x004c92be in do_pending_operator (cap=0x289c58, old_col=0,
      > gui_yank=1) at normal.c:1823
      > #3 0x004debf5 in clip_get_selection (cbd=0x5e7b40) at ops.c:5924
      > #4 0x0055b8a8 in clip_x11_convert_selection_cb (w=0x80071588,
      > sel_atom=0x28a1ec, target=0x289ddc,
      > type=0x289df0, value=0x289dfc, length=0x289df8, format=0x289df4)
      > at ui.c:2307
      > #5 0x69a2170e in cygXt-6!_
      > XtResourceListInitialize () from /usr/bin/cygXt-6.dll
      > #6 0x69a21bd3 in cygXt-6!_XtResourceListInitialize () from /usr/bin/cygXt-6.dll
      > #7 0x69a0e8f0 in cygXt-6!XtDispatchEventToWidget () from /usr/bin/cygXt-6.dll
      > #8 0x69a0ecc1 in cygXt-6!_XtOnGrabList () from /usr/bin/cygXt-6.dll
      > #9 0x69a0f0d6 in cygXt-6!XtDispatchEvent () from /usr/bin/cygXt-6.dll
      > #10 0x69a1973d in cygXt-6!XtAppProcessEvent () from /usr/bin/cygXt-6.dll
      > #11 0x00578bfb in gui_mch_update () at gui_x11.c:2828
      > #12 0x00558e8b in ui_breakcheck () at ui.c:364
      > #13 0x004b53a9 in fast_breakcheck () at misc1.c:9187
      > #14 0x00502532 in regmatch (scan=0x8005cf2f "\005") at regexp.c:4077
      > #15 0x005022c6 in regtry (prog=0x8005cf08, col=1) at regexp.c:3945
      > #16 0x005020d8 in vim_regexec_both (line=0x80194a96 "#include
      > <speex/speex_jitter.h>", col=1, tm=0x0)
      > at regexp.c:3834
      > #17 0x00501be5 in vim_regexec_multi (rmp=0x28a4c0, win=0x8029c220,
      > buf=0x8005b6e8, lnum=5, col=0,
      > tm=0x0) at regexp.c:3643
      > #18 0x00542f33 in syn_regexec (rmp=0x28a4c0, lnum=5, col=0) at syntax.c:3238
      > #19 0x005411ea in syn_current_attr (syncing=0, displaying=1,
      > can_spell=0x0, keep_state=0)
      > at syntax.c:2071
      > #20 0x00540bf6 in get_syntax_attr (col=0, can_spell=0x0, keep_state=0)
      > at syntax.c:1830
      > #21 0x0050dee8 in win_line (wp=0x8029c220, lnum=5, startrow=4,
      > endrow=64, nochange=1) at screen.c:4090
      > #22 0x0050a075 in win_update (wp=0x8029c220) at screen.c:1861
      > #23 0x00507fa8 in update_screen (type=40) at screen.c:536
      > #24 0x00507ac6 in update_curbuf (type=20) at screen.c:314
      > #25 0x0058e30a in main_loop (cmdwin=0, noexmode=0) at main.c:1209
      > #26 0x0058df72 in main (argc=3, argv=0x28ac60) at main.c:1014
      >
      > What happens is while the screen is being updated, vim_regexec_multi()
      > temporarily replaces the value of curbuf and proceeds with a call to
      > vim_regexec_both(). Since regmatch() can take a long time to complete,
      > it can be interrupted by pressing Ctrl-C. For this to be possible, Vim
      > handles pending UI events. Among these events is a request to get the
      > current selection. This is where the contents of curbuf are accessed
      > with coordinates taken from curwin. Since vim_regexec_multi() replaced
      > the value of curbuf, the data pointed to by curbuf is inconsistent
      > with the data pointed to by curwin. This can cause the E315 error.

      Thanks, I have added it to the todo list.

      --
      Your fault: core dumped

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