Do you know any code saying "if something, do not draw the stroke"? Since
not that i know of... but it's hard to fully understand what inkscape does, there are so many pieces stitched together
the stroke disappears completely, this is likely to be such a "draw or not draw" switch. I know of one, which you introduced
the behavior is shape-dependent; you can have a single cubic bezier patch rendering with one value of the 2nd control point, and if you move that point slightly, it won't render anymore.
So you're observing that behavior? Great, that gives me hope :)
that's much like the intersector bugs i was having, so i suppose it's the ConvertToShape() eating the stroke, either because the input is incorrect, or because it failed to uncross the polygon. there are maybe other places where this can happen, but i don't think they come into play here. sadly my gdb refuses to see debug symbols in inkscape.exe... (tho it was compiled with the appropriate cflags) does anyone know how to tame gdb on mingw?
I don't know :( Anyone?
_________________________________________________________________ http://join.msn.com/?pgmarket=en-ca&page=byoa/prem&xAPID=1994&DI...
On Sun, 2004-03-07 at 13:54, bulia byak wrote:
the behavior is shape-dependent; you can have a single cubic bezier patch rendering with one value of the 2nd control point, and if you move that point slightly, it won't render anymore.
So you're observing that behavior? Great, that gives me hope :)
that's much like the intersector bugs i was having, so i suppose it's the ConvertToShape() eating the stroke, either because the input is incorrect, or because it failed to uncross the polygon.
I don't know :( Anyone?
==6706== Use of uninitialised value of size 8 ==6706== at 0x81E6D54: Shape::edge_data::edge_data(Shape::edge_data const&) (Shape.cpp:1547) ==6706== by 0x81E38D0: Shape::SwapEdges(int, int) (Shape.cpp:1547) ==6706== by 0x81E2535: Shape::SubEdge(int) (Shape.cpp:1381) ==6706== by 0x81EFA6F: Shape::ConvertToShape(Shape*, fill_typ, bool) (ShapeSweep.cpp:852) ==6706== ==6706== Use of uninitialised value of size 8 ==6706== at 0x81E6CDE: Shape::edge_data::operator=(Shape::edge_data const&) (Shape.cpp:1548) ==6706== by 0x81E3902: Shape::SwapEdges(int, int) (Shape.cpp:1548) ==6706== by 0x81E2535: Shape::SubEdge(int) (Shape.cpp:1381) ==6706== by 0x81EFA6F: Shape::ConvertToShape(Shape*, fill_typ, bool) (ShapeSweep.cpp:852) ==6706==
I get more than 30000[sic] such errors when starting Inkscape under valgrind.
It looks like some Shape::edge_datas are being used without being fully initialized.
You can get away with that under Linux often because memory is usually allocated by mmap()ing /dev/zero (so freshly-allocated memory will be zero-filled).
The Win32 allocator obviously does not od that.
Anyway, it's not safe to use uninitialized memory anyway -- I'm sure the same bug manifests itself under Linux sometimes when memory is reused, though much more rarely.
-mental
participants (2)
-
bulia byak
-
MenTaLguY