Am 2016-06-15 23:05, schrieb Bram Moolenaar:
Christian Brabandt wrote:
> Have you tried after patch 7.4.1939? It fixes a problem where
> w_jumplistlen was overwritten with a line number. Valgrind doesn't
> catch this because it's still within a struct.
I saw that patch, and it looks suspicious, but it was in a different
section of the file. It still fails after 7.4.1940
You mentioned w_jumplistlen went negative. I can't find any place
where
w_jumplistlen might be set to a negative value. And I don't think it
could happen by writing at w_jumplist[JUMPLISTSIZE] since we don't use
negative line numbers.
It doesn't get negative. It more looks like this whole check
(mark.c:175)
if (++curwin->w_jumplistlen > JUMPLISTSIZE)
{
curwin->w_jumplistlen = JUMPLISTSIZE;
vim_free(curwin->w_jumplist[0].fname);
for (i = 1; i < JUMPLISTSIZE; ++i)
curwin->w_jumplist[i - 1] = curwin->w_jumplist[i];
}
is never exexuted. In the debugger curwin->w_jumplistlen always is 0 so
here:
fm = &curwin->w_jumplist[curwin->w_jumplistlen - 1];
it would read out of bounds.
Could it possibly be a compiler optimizer bug?
Possible. Are there some compiler flags, I can try?
Sorry, I don't know Microsofts Compiler settings very well.
Anyhow, I am pretty sure, this is caused by patch 7.4.1925.
So I'll try to find that part in the patch, that causes this.
Best,
Christian
--
--
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 [email protected].
For more options, visit https://groups.google.com/d/optout.