On Sat, Nov 15, 2008 at 8:38 AM, Diederik van Lierop <mail@...1689...> wrote:
Well, never mind. I just fixed this myself (see rev. 1698 of 2geom, and rev. 20205 of Inkscape). unitTangentAt() falsely assumed that pointAndDerivatives(t,n) always returns a vector of size n+1, and therefore tried to access elements outside the vector bounds.
Wow, if this is indeed the bug I've been struggling with (will check today), you are my hero! Thanks a lot!
These questions remain though:
- Why was this only a problem on Windows? No one has been able to reproduce
this on Linux.
This has happened with other bugs before. Windows compiler seems to use a different memory layout, so pointers which hit forbidden memory on one platform land into valid memory on another.
- Why wasn't it reproducible while debugging?
Again, likely because the debugger somehow changes the memory layout of the program it runs. This is just a common sense guess of course, I know very little about executables.