Shrinking a pattern causes lock-up
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Inkscape |
Fix Released
|
Critical
|
Diederik van Lierop |
Bug Description
I have an SVG document, created with Inkscape (attached
as 1.svg), in which turning just about any path into a
pattern and then shrinking the pattern using any of the
transformation handles (horizontal/
results Inkscape using 100% CPU and a non-responsive
desktop (Gnome 2.12 in my case). Oddly enough, when I
create a new SVG document file I can't reproduce it as
easily. Also, sometimes it would just hang for a few
seconds but most of the time (seemingly) forever. I've
spent a few hours trying to narrow down what causes it
but this is the best I could do:
To reproduce:
- Open attached SVG document (1.svg).
- Use existing triangle, or create a new path, with or
without fill and/or stroke (any combination seems to
work) of any complexity. *
- Turn the path into a pattern (object(s) to pattern).
- Grab any of the scaling transformation handles on the
pattern and gradually shrink it until it hangs. **
* Actually, not all shapes seem to cause the hang, I
noticed that it doesn't happen on shapes where the
edges are curved outward and no nodes are touching the
bounding box. When I use a new SVG document and start
from scratch it seems almost impossible to cause the
hang, but occasionally it does hang.
** Although the hang occurs with the grid+snap turned
on, with certain shapes and complexities it seems to
only happen (or at least more easily) with snap turned off.
I've tested this with both .43 and latest from svn
(checked out April 9 2006 8:14 CEST)
Changed in inkscape: | |
status: | New → Confirmed |
thanks for the report. confirmed on OpenSuSE. it appears to
be stuck while rendering.
Program received signal SIGINT, Interrupt. N_R8G8B8A8_ N_R8G8B8A8_ P (px=0x912ccf8 "", w=2, N_R8G8B8A8_ N_R8G8B8A8_ P (px=0x912ccf8 "", pixblock_ pixblock_ alpha item_invoke_ render (item=0x9ff7c58, 0xbfa5fcc8, pb=0xbfa5fcac, flags=0) at item.cpp: 317 render_ paintserver_ fill 0xbfa5fd2c, painter=0x9ffc028, opacity=1, shape_render (item=0x9fd4b90, shape.cpp: 695 item_invoke_ render (item=0x9fd4b90, 0xbfa5ffbc, pb=0xbfa601a0, flags=<value optimized out>) item.cpp: 644 group_render (item=0x9fd4b90, group.cpp: 193 item_invoke_ render (item=0x9fb73b8, 0xbfa600bc, pb=0xbfa601a0, flags=<value optimized out>) item.cpp: 644 group_render (item=0x9fb73b8, group.cpp: 193 item_invoke_ render (item=0x9ca7798, 0xbfa601bc, pb=0xbfa601a0, flags=<value optimized out>) item.cpp: 644 group_render (item=0x9ca7798, group.cpp: 193 item_invoke_ render (item=0x8719ed8, 0xbfa6024c, pb=0xbfa60230, flags=<value optimized out>) item.cpp: 644 arena_render (item=0x8719cc0, arena.cpp: 281 group_render (item=0x871c1e0, group_render (item=0x86d85f0, paint_rect (canvas=0x86ea7d8, lib/libglib- 2.0.so. 0 context_ dispatch () lib/libglib- 2.0.so. 0 context_ check () from lib/libglib- 2.0.so. 0 lib/libglib- 2.0.so. 0 lib/libgtk- x11-2.0. so.0
nr_R8G8B8A8_
h=82, rs=8,
spx=0xa00e320 "", srs=8, alpha=255) at nr-compose.cpp:192
192 a = NR_PREMUL (s[3], alpha);
#0 nr_R8G8B8A8_
w=2, h=82, rs=8,
spx=0xa00e320 "", srs=8, alpha=255) at nr-compose.cpp:192
#1 0x0834aa2a in nr_blit_
(d=0xbfa5fcac, s=0xbfa5fb60,
alpha=255) at nr-blit.cpp:107
#2 0x082f8169 in nr_arena_
area=
nr-arena-
#3 0x0819257a in sp_pat_fill (painter=0x9ffc028, pb=0xbfa5fd48)
at sp-pattern.cpp:973
#4 0x082f6182 in nr_arena_
(pb=0xbfa601a0,
area=
mask=0xbfa5fdc8)
at nr-arena.cpp:115
#5 0x082fd1c6 in nr_arena_
area=0xbfa5febc,
pb=0xbfa601a0, flags=1) at nr-arena-
#6 0x082f860d in nr_arena_
area=
at nr-arena-
#7 0x082f9080 in nr_arena_
area=0xbfa5ffbc,
pb=0xbfa601a0, flags=1) at nr-arena-
#8 0x082f860d in nr_arena_
area=
at nr-arena-
#9 0x082f9080 in nr_arena_
area=0xbfa600bc,
pb=0xbfa601a0, flags=1) at nr-arena-
#10 0x082f860d in nr_arena_
area=
at nr-arena-
#11 0x082f9080 in nr_arena_
area=0xbfa601bc,
pb=0xbfa601a0, flags=1) at nr-arena-
#12 0x082f860d in nr_arena_
area=
at nr-arena-
#13 0x08300727 in sp_canvas_
buf=0xbfa602ec)
at canvas-
#14 0x0830e94d in sp_canvas_
buf=0xbfa602ec)
at sp-canvas.cpp:803
#15 0x0830e94d in sp_canvas_
buf=0xbfa602ec)
at sp-canvas.cpp:803
#16 0x0830f671 in sp_canvas_
xx0=384, yy0=-2816,
xx1=448, yy1=-2688) at sp-canvas.cpp:1575
#17 0x08310178 in do_update (canvas=0x86ea7d8) at
sp-canvas.cpp:1754
#18 0x0831028b in idle_handler (data=0x86ea7d8) at
sp-canvas.cpp:1796
#19 0x40f84941 in g_child_watch_add () from
/opt/gnome/
#20 0x40f8235c in g_main_
from /opt/gnome/
#21 0x40f857cb in g_main_
/opt/gnome/
#22 0x40f85ae7 in g_main_loop_run () from
/opt/gnome/
#23 0x404ee861 in gtk_main () from
/opt/gnome/