On Sun, Nov 25, 2012 at 02:29:59PM +0100, Christian Brabandt wrote:
> Hi everybody
> 
> On Fr, 23 Nov 2012, Ike Devolder wrote:
> > but the following i can reproduce every time:
> > 
> > same configuration as before, same file (index.php)
> > - open index.php (it still has the syntax error
> > - :w (syntastic kicks in)
> > - fix the error by adding ; after phpinfo()
> > - :w (no more error in the file)
> > - remove the ; again
> > - :w (syntastic kicks in)
> > - :w ->E776: No location list
> > 
> > "index.php" 2L, 16C written
> > Error detected while processing function 
> > <SNR>31_UpdateErrors..<SNR>31_AutoToggleLocList..<SNR>31_ShowLocList:
> > line    3:
> > E776: No location list
> > Press ENTER or type command to continue
> > 
> > no crash in this case, if i continue after this issue i get a second 
> > quickfix 
> > buffer.
> > 
> > thx for the intermediate fix it is definatly an improvement.
> 
> The following patch seems to fix all the issues mentioned so far. It 
> basically does this by reverting Patch 7.3.715 and making sure, no data 
> is freed more than once. Unfortunately, I have not been able to come up 
> with a simple test case for the syntastic problem, that could be 
> included.
> 
> If anybody can come up with such a test (using no plugin, but just using 
> vim -u NONE -U NONE -N) a tip is appreciated.
> 
> regards,
> Christian
> -- 
> Ich bin geldgierig. Als Finanzminister muß man geldgierig sein.
>               -- Hans Eichel
> 
> -- 
> 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

> diff --git a/src/quickfix.c b/src/quickfix.c
> --- a/src/quickfix.c
> +++ b/src/quickfix.c
> @@ -898,11 +898,7 @@
>       * way with ":grep'.
>       */
>      while (qi->qf_listcount > qi->qf_curlist + 1)
> -    {
> -     if (wp != NULL && wp->w_llist == qi)
> -         wp->w_llist = NULL;
>       qf_free(qi, --qi->qf_listcount);
> -    }
>  
>      /*
>       * When the stack is full, remove to oldest entry
> @@ -910,8 +906,6 @@
>       */
>      if (qi->qf_listcount == LISTCOUNT)
>      {
> -     if (wp != NULL && wp->w_llist == qi)
> -         wp->w_llist = NULL;
>       qf_free(qi, 0);
>       for (i = 1; i < LISTCOUNT; ++i)
>           qi->qf_lists[i - 1] = qi->qf_lists[i];
> @@ -2135,13 +2129,17 @@
>      while (qi->qf_lists[idx].qf_count)
>      {
>       qfp = qi->qf_lists[idx].qf_start->qf_next;
> -     vim_free(qi->qf_lists[idx].qf_start->qf_text);
> -     vim_free(qi->qf_lists[idx].qf_start->qf_pattern);
> -     vim_free(qi->qf_lists[idx].qf_start);
> +     if (qi->qf_lists[idx].qf_title != NULL)
> +     {
> +         vim_free(qi->qf_lists[idx].qf_start->qf_text);
> +         vim_free(qi->qf_lists[idx].qf_start->qf_pattern);
> +         vim_free(qi->qf_lists[idx].qf_start);
> +     }
>       qi->qf_lists[idx].qf_start = qfp;
>       --qi->qf_lists[idx].qf_count;
>      }
> -    vim_free(qi->qf_lists[idx].qf_title);
> +    if (qi->qf_lists[idx].qf_title != NULL)
> +     vim_free(qi->qf_lists[idx].qf_title);
>      qi->qf_lists[idx].qf_title = NULL;
>  }
>  

thx all seems to be working fine with this patch

-- 
Ike

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

Raspunde prin e-mail lui