Bug 10231

Summary: Crash in cairo_stroke_extents when line width is 0 and line cap is ROUND (_cairo_pen_find_active_cw_vertex_index)
Product: cairo Reporter: Sebastien Bacher <seb128>
Component: generalAssignee: Carl Worth <cworth>
Status: RESOLVED FIXED QA Contact: cairo-bugs mailing list <cairo-bugs>
Severity: blocker    
Priority: medium CC: khiraly123, riccardo.magliocchetti
Version: 1.3.16   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments: Minimal SVG test case to demonstrate bug

Description Sebastien Bacher 2007-03-09 04:12:11 UTC
The bug has been opened on https://launchpad.net/bugs/88605

"Binary package hint: gnome-panel

After upgrading from edgy to feisty the gnome panel crashes whenever the Accessories menu is accessed. I have tracked this down to being caused by the gnome-screenshot.desktop launcher (Attatched. This file also crashes nautilus and the menu editor). Can someone else confirm this with the attatched file?
...
http://librarian.launchpad.net/6568011/gnome-panel-bt.txt
gnome-panel backtrace "thread apply all bt full"

0xb7fd9410 in __kernel_vsyscall ()
(gdb) continue
Continuing.

Program received signal SIGABRT, Aborted.
[Switching to Thread -1225623872 (LWP 20270)]
0xb7fd9410 in __kernel_vsyscall ()
(gdb) thread apply all bt full

Thread 1 (Thread -1225623872 (LWP 20270)):
#0  0xb7fd9410 in __kernel_vsyscall ()
No symbol table info available.
#1  0xb74fedf0 in raise () from /lib/tls/i686/cmov/libc.so.6
No symbol table info available.
#2  0xb7500641 in abort () from /lib/tls/i686/cmov/libc.so.6
No symbol table info available.
#3  0xb74f843b in __assert_fail () from /lib/tls/i686/cmov/libc.so.6
No symbol table info available.
#4  0xb78de7af in _cairo_pen_find_active_cw_vertex_index (pen=0xbfd7a7c4,
    slope=0xbfd7a6e0, active=0xbfd7a6e8)
    at /build/buildd/libcairo-1.3.14/src/cairo-pen.c:323
        i = 4
        __PRETTY_FUNCTION__ = "_cairo_pen_find_active_cw_vertex_index"
#5  0xb78dcef4 in _cairo_stroker_add_cap (stroker=0xbfd7a7ac, f=0xbfd7a710)
    at /build/buildd/libcairo-1.3.14/src/cairo-path-stroke.c:380
        i = <value optimized out>
        stop = <value optimized out>
        slope = {dx = 186413, dy = -41235}
        tri = {{x = 1281686, y = 421457}, {x = -186413, y = 41235}, {
    x = -422821683, y = -1074839899}}
        pen = (cairo_pen_t *) 0xbfd7a7c4
---Type <return> to continue, or q <return> to quit---
        start = <value optimized out>
        status = <value optimized out>
#6  0xb78dd165 in _cairo_stroker_add_leading_cap (stroker=0x0,
    face=<value optimized out>)
    at /build/buildd/libcairo-1.3.14/src/cairo-path-stroke.c:451
        reversed = {ccw = {x = 1281686, y = 421457}, point = {x = 1281686,
    y = 421457}, cw = {x = 1281686, y = 421457}, dev_vector = {dx = 186413,
    dy = -41235}, usr_vector = {x = 0.97639746740062494,
    y = -0.21598144747557721}}
#7  0xb78dd195 in _cairo_stroker_add_caps (stroker=0xbfd7a7ac)
    at /build/buildd/libcairo-1.3.14/src/cairo-path-stroke.c:483
        status = <value optimized out>
#8  0xb78dd59c in _cairo_path_fixed_stroke_to_traps (path=0x83fee30,
    stroke_style=0x8434830, ctm=0x84348cc, ctm_inverse=0x84348fc,
    tolerance=0.10000000000000001, traps=0xbfd7a8d0)
    at /build/buildd/libcairo-1.3.14/src/cairo-path-stroke.c:999
        status = CAIRO_STATUS_SUCCESS
        stroker = {style = 0x8434830, ctm = 0x84348cc,
  ctm_inverse = 0x84348fc, tolerance = 0.10000000000000001,
  traps = 0xbfd7a8d0, pen = {radius = 0, tolerance = 0.10000000000000001,
    vertices = 0x8413dc0, num_vertices = 4}, current_point = {x = 1095273,
    y = 462692}, first_point = {x = 1281686, y = 421457}, has_sub_path = 1,
  has_current_face = 1, current_face = {ccw = {x = 1095273, y = 462692},
---Type <return> to continue, or q <return> to quit---
    point = {x = 1095273, y = 462692}, cw = {x = 1095273, y = 462692},
    dev_vector = {dx = -186413, dy = 41235}, usr_vector = {
      x = -0.97639746740062494, y = 0.21598144747557721}}, has_first_face = 1,
  first_face = {ccw = {x = 1281686, y = 421457}, point = {x = 1281686,
      y = 421457}, cw = {x = 1281686, y = 421457}, dev_vector = {dx = -186413,
      dy = 41235}, usr_vector = {x = -0.97639746740062494,
      y = 0.21598144747557721}}, dashed = 0, dash_index = 2147483648,
  dash_on = 0, dash_remain = 2.7714405984811759e+140}
#9  0xb78d755d in _cairo_gstate_stroke_extents (gstate=0x8434820,
    path=0x83fee30, x1=0xbfd7a9b8, y1=0xbfd7a9c0, x2=0xbfd7a9c8, y2=0xbfd7a9d0)
    at /build/buildd/libcairo-1.3.14/src/cairo-gstate.c:1098
        status = <value optimized out>
        traps = {status = CAIRO_STATUS_SUCCESS, traps = 0x83f9070,
  num_traps = 1, traps_size = 32, extents = {p1 = {x = 1095273, y = 421457},
    p2 = {x = 1281686, y = 462692}}}
#10 0xb78cfa72 in cairo_stroke_extents (cr=0x83fee28, x1=0xbfd7a9b8,
    y1=0x4f2e, x2=0x6, y2=0xbfd7a9d0)
    at /build/buildd/libcairo-1.3.14/src/cairo.c:2084
No locals.
#11 0xb5cd6144 in rsvg_cairo_render_path (ctx=0x83f8a20, bpath_def=0x8424ca0)
    at rsvg-cairo-draw.c:546
        sb = {x = 3.5471539793577393e-313, y = -5.6882993853407495e-42,
  w = 1.0000000000000004e-06, h = 3.6420360324781743e-314, virgin = 1,
---Type <return> to continue, or q <return> to quit---
  affine = {0.36666666666666664, 0, 0, 0.36666666666666664, 0, 0}}
        state = (RsvgState *) 0x82685c0
        cr = (cairo_t *) 0x83fee28
        bpath = <value optimized out>
        i = 3
        need_tmpbuf = 0
        bbox = {x = 1.0498210154330849e-212, y = -2.1132765933070594e-41,
  w = 0, h = 45.579647999999999, virgin = 1, affine = {0.36666666666666664, 0,
    0, 0.36666666666666664, 0, 0}}
#12 0xb5cd0ffe in rsvg_render_path (ctx=0x83f8a20,
    d=0x8429b30 "M 53.337217,17.538889 L 45.579648,19.254884")
    at rsvg-base.c:1641
        bpath_def = (RsvgBpathDef *) 0x8424ca0
#13 0xb5cc6adb in rsvg_node_path_draw (self=0x84170f8, ctx=0x83f8a20,
    dominate=0) at rsvg-shapes.c:61
No locals.
#14 0xb5cc964e in rsvg_node_draw (self=0x6, ctx=0x83f8a20, dominate=0)
    at rsvg-structure.c:54
        stacksave = (GSList *) 0x0
#15 0xb5cc98aa in _rsvg_node_draw_children (self=0x8433af8, ctx=0x83f8a20,
    dominate=0) at rsvg-structure.c:73
        i = 46
#16 0xb5cc964e in rsvg_node_draw (self=0x6, ctx=0x83f8a20, dominate=0)
---Type <return> to continue, or q <return> to quit---
    at rsvg-structure.c:54
        stacksave = (GSList *) 0x0
#17 0xb5cca0ff in rsvg_node_svg_draw (self=0x8431bf0, ctx=0x83f8a20,
    dominate=0) at rsvg-structure.c:316
        state = <value optimized out>
        affine = {1, 0, 0, 1, 0, 0}
        affine_old = {0.36666666666666664, 0, 0, 0.36666666666666664, 0, 0}
        affine_new = {0.36666666666666664, 0, 0, 0.36666666666666664, 0, 0}
        i = 6
        nx = 0
        ny = 0
        nw = 60
        nh = 60
#18 0xb5cc964e in rsvg_node_draw (self=0x6, ctx=0x83f8a20, dominate=0)
    at rsvg-structure.c:54
        stacksave = (GSList *) 0x0
#19 0xb5cd6907 in rsvg_handle_render_cairo_sub (handle=0x80ee298,
    cr=0x83fee28, id=0x0) at rsvg-cairo-render.c:161
        drawsub = (RsvgNode *) 0x8268270
        __PRETTY_FUNCTION__ = "rsvg_handle_render_cairo_sub"
#20 0xb5cd6e21 in rsvg_handle_get_pixbuf_sub (handle=0x80ee298, id=0x0)
    at rsvg.c:101
        dimensions = {width = 22, height = 22, em = 60, ex = 60}
---Type <return> to continue, or q <return> to quit---
        output = <value optimized out>
        surface = (cairo_surface_t *) 0x841e650
        cr = (cairo_t *) 0x83fee28
        rowstride = 88
        __PRETTY_FUNCTION__ = "rsvg_handle_get_pixbuf_sub"
#21 0xb5cd6ef5 in rsvg_handle_get_pixbuf (handle=0x80ee298) at rsvg.c:135
No locals.
#22 0xb7fc2c47 in ?? () from /usr/lib/gtk-2.0/2.10.0/loaders/svg_loader.so
No symbol table info available.
#23 0x080ee298 in ?? ()
No symbol table info available.
#24 0x00000000 in ?? ()
No symbol table info available.
(gdb)


No problem, see attatched."
Comment 1 Behdad Esfahbod 2007-03-09 12:27:48 UTC
Can you reproduce and print *pen in _cairo_pen_find_active_cw_vertex_index?
Comment 2 Behdad Esfahbod 2007-03-09 13:10:39 UTC
Also can you attach the SVG that causes the crash?  The .desktop file is not useful.
Comment 3 Behdad Esfahbod 2007-03-09 13:12:19 UTC
Other than *pen, "pen->vertices[0]@8" is interesting too.
Comment 4 Sebastien Bacher 2007-03-15 15:14:29 UTC
ubuntu duplicate example: http://librarian.launchpad.net/6823930/cracher-from-openwengo.svg

Comment 5 Carl Worth 2007-03-15 18:46:39 UTC
(In reply to comment #4)
> ubuntu duplicate example:
> http://librarian.launchpad.net/6823930/cracher-from-openwengo.svg

Excellent, thank you!

With this svg image I can replicate the bug, (with simply "rsvg-view cracher-from-openwengo.svg"), so a fix should not be far away now.

-Carl

Comment 6 Carl Worth 2007-03-15 19:09:16 UTC
(In reply to comment #5)
> With this svg image I can replicate the bug, (with simply "rsvg-view
> cracher-from-openwengo.svg"), so a fix should not be far away now.

OK. It's easy enough to spot the bug. It's triggered by the stroke-width="0", (which appears _many_ times in that file).

That's an embarrassing little bug in cairo, but will be simple enough to fix.

Meanwhile, I wonder what that SVG file is doing with all the stroke-width="0" elements in it. According to the SVG specification, a "zero value causes no stroke to be painted" [http://www.w3.org/TR/SVG/painting.html#StrokeProperties].

But anyway, I'll be back with a patch quite soon.

-Carl

Comment 7 Carl Worth 2007-03-15 19:24:35 UTC
Clarifying that the bug only occurs with CAIRO_LINE_CAP_ROUND.
Comment 8 Carl Worth 2007-03-15 19:30:16 UTC
Created attachment 9173 [details]
Minimal SVG test case to demonstrate bug

Here's the minimal SVG test case I've been able to write to demonstrate the bug.

Oddly enough, when I've written the trivial transliteration of this SVG file to a C test case, it's not triggering the bug. Still looking...

-Carl
Comment 9 Behdad Esfahbod 2007-03-15 20:59:31 UTC
(In reply to comment #8)
> Created an attachment (id=9173) [details]
> Minimal SVG test case to demonstrate bug
> 
> Here's the minimal SVG test case I've been able to write to demonstrate the
> bug.
> 
> Oddly enough, when I've written the trivial transliteration of this SVG file to
> a C test case, it's not triggering the bug. Still looking...

Yeah, cause my first guess was that, I tried stroke-width of zero and all epsilons greater than zero.  It worked.  Either got 4 different points in the pen, or the pen code was not called at all.
 
> -Carl
Comment 10 Behdad Esfahbod 2007-03-15 21:03:06 UTC
Ok, the examples hits a case where the four points of the pen are all 0,0.  I tried to get that case with no luck.  Investigating.
Comment 11 Behdad Esfahbod 2007-03-15 21:04:33 UTC
Ok, how silly I am.  It happens with stroke_extents(), not stroke()...  That's why I failed to reproduce it...
Comment 12 Carl Worth 2007-03-15 21:12:32 UTC
Yeah, we both made the same mistake trying to reproduce this one.

Anyway, all fixed now, (and tested in cairo's test suite now as well):

http://gitweb.freedesktop.org/?p=cairo;a=commitdiff;h=133183d858aa632da3cec2a789dcc1e1203d778b

Thanks very much for the report.

We're shooting for a cairo 1.4.2 release in early April that will include this fix.

-Carl
Comment 13 Benjamin Otte 2007-11-18 05:52:47 UTC
*** Bug 13293 has been marked as a duplicate of this bug. ***
Comment 14 Riccardo Magliocchetti 2007-11-18 07:18:01 UTC
I'm getting this with swfdec from git and cairo 1.4.10 from debian, reported in swfdec as 13293.

Program received signal SIGABRT, Aborted.
---Type <return> to continue, or q <return> to quit---
[Switching to Thread 0xb718e920 (LWP 9961)]
0xb736f7d6 in raise () from /lib/libc.so.6
(gdb) bt full
#0  0xb736f7d6 in raise () from /lib/libc.so.6
No symbol table info available.
#1  0xb73710f1 in abort () from /lib/libc.so.6
No symbol table info available.
#2  0xb7368b50 in __assert_fail () from /lib/libc.so.6
No symbol table info available.
#3  0xb77b7f4f in _cairo_pen_find_active_cw_vertex_index (pen=0xbfd43f00, 
    slope=0xbfd43dd0, active=0xbfd43dd8)
    at /home/rm/swfdec/cairo/libcairo-1.4.10/src/cairo-pen.c:324
        i = 4
        __PRETTY_FUNCTION__ = "_cairo_pen_find_active_cw_vertex_index"
#4  0xb77b668e in _cairo_stroker_add_cap (stroker=0xbfd43ee8, f=0xbfd43e00)
    at /home/rm/swfdec/cairo/libcairo-1.4.10/src/cairo-path-stroke.c:397
        i = <value optimized out>
        stop = <value optimized out>
        slope = {dx = -2, dy = -1}
        tri = {{x = 39324, y = 62256}, {x = 0, y = 1}, {x = 0, y = 0}}
        pen = (cairo_pen_t *) 0xbfd43f00
        start = <value optimized out>
        status = <value optimized out>
#5  0xb77b6945 in _cairo_stroker_add_leading_cap (stroker=0x0, 
    face=<value optimized out>)
    at /home/rm/swfdec/cairo/libcairo-1.4.10/src/cairo-path-stroke.c:480
---Type <return> to continue, or q <return> to quit---
        reversed = {ccw = {x = 39324, y = 62256}, point = {x = 39324, 
    y = 62256}, cw = {x = 39324, y = 62256}, dev_vector = {dx = -2, dy = -1}, 
  usr_vector = {x = -0.89442719099991586, y = -0.44721359549995793}}
#6  0xb77b6976 in _cairo_stroker_add_caps (stroker=0xbfd43ee8)
    at /home/rm/swfdec/cairo/libcairo-1.4.10/src/cairo-path-stroke.c:520
        status = <value optimized out>
#7  0xb77b6d1c in _cairo_path_fixed_stroke_to_traps (path=0xa83abe8, 
    stroke_style=0xa83b378, ctm=0xbfd443a8, ctm_inverse=0xbfd44378, 
    tolerance=0.10000000000000001, traps=0xbfd44024)
    at /home/rm/swfdec/cairo/libcairo-1.4.10/src/cairo-path-stroke.c:1024
        status = CAIRO_STATUS_SUCCESS
        stroker = {style = 0xa83b378, ctm = 0xbfd443a8, 
  ctm_inverse = 0xbfd44378, tolerance = 0.10000000000000001, 
  traps = 0xbfd44024, pen = {radius = 10, tolerance = 0.10000000000000001, 
    vertices = 0xa28b990, num_vertices = 4}, current_point = {x = 39324, 
    y = 62256}, first_point = {x = 39324, y = 62256}, 
  has_initial_sub_path = 0, has_current_face = 1, current_face = {ccw = {
      x = 39324, y = 62256}, point = {x = 39324, y = 62256}, cw = {x = 39324, 
      y = 62256}, dev_vector = {dx = 0, dy = 1}, usr_vector = {x = 0, y = 1}}, 
  has_first_face = 1, first_face = {ccw = {x = 39324, y = 62256}, point = {
      x = 39324, y = 62256}, cw = {x = 39324, y = 62256}, dev_vector = {
      dx = 2, dy = 1}, usr_vector = {x = 0.89442719099991586, 
      y = 0.44721359549995793}}, dashed = 0, dash_index = 3218358248, 
---Type <return> to continue, or q <return> to quit---
  dash_on = -1216433589, dash_starts_on = -1216441344, dash_remain = 0}
#8  0xb77c01c5 in _cairo_surface_fallback_stroke (surface=0xa83a7b0, 
    op=CAIRO_OPERATOR_OVER, source=0xbfd442e4, path=0xa83abe8, 
    stroke_style=0xa83b378, ctm=0xbfd443a8, ctm_inverse=0xbfd44378, 
    tolerance=0.10000000000000001, antialias=CAIRO_ANTIALIAS_DEFAULT)
    at /home/rm/swfdec/cairo/libcairo-1.4.10/src/cairo-surface-fallback.c:836
        status = CAIRO_STATUS_SUCCESS
        traps = {status = CAIRO_STATUS_SUCCESS, extents = {p1 = {
      x = 2147483647, y = 2147483647}, p2 = {x = -2147483648, 
      y = -2147483648}}, num_traps = 0, traps_size = 1, traps = 0xbfd44044, 
  traps_embedded = {{top = 0, bottom = -1076608856, left = {p1 = {
          x = -1216621436, y = -1076608284}, p2 = {x = -1076608920, y = 0}}, 
      right = {p1 = {x = 0, y = 0}, p2 = {x = -1076608284, y = 0}}}}, 
  has_limits = 1, limits = {p1 = {x = 0, y = 0}, p2 = {x = 9306112, 
      y = 65536}}}
        box = {p1 = {x = 0, y = 0}, p2 = {x = 9306112, y = 65536}}
        extents = {x = 0, y = 0, width = 142, height = 1}
#9  0xb77bd7ab in _cairo_surface_stroke (surface=0xa83a7b0, 
    op=CAIRO_OPERATOR_OVER, source=0xbfd44428, path=0xa83abe8, 
    stroke_style=0xa83b378, ctm=0xa83b420, ctm_inverse=0xa83b450, 
    tolerance=0.10000000000000001, antialias=CAIRO_ANTIALIAS_DEFAULT)
    at /home/rm/swfdec/cairo/libcairo-1.4.10/src/cairo-surface.c:1414
        status = CAIRO_STATUS_SUCCESS
---Type <return> to continue, or q <return> to quit---
        dev_source = {base = {type = CAIRO_PATTERN_TYPE_SOLID, ref_count = 1, 
    status = CAIRO_STATUS_SUCCESS, user_data = {size = 0, num_elements = 0, 
      element_size = 12, elements = 0x0, is_snapshot = 0}, matrix = {
      xx = 1310720, yx = 0, xy = 0, yy = 1310720, x0 = -786432, 
      y0 = -1245184}, filter = CAIRO_FILTER_BEST, extend = CAIRO_EXTEND_PAD}, 
  solid = {base = {type = CAIRO_PATTERN_TYPE_SOLID, ref_count = 1, 
      status = CAIRO_STATUS_SUCCESS, user_data = {size = 0, num_elements = 0, 
        element_size = 12, elements = 0x0, is_snapshot = 0}, matrix = {
        xx = 1310720, yx = 0, xy = 0, yy = 1310720, x0 = -786432, 
        y0 = -1245184}, filter = CAIRO_FILTER_BEST, 
      extend = CAIRO_EXTEND_PAD}, color = {red = 0.59999999999999998, 
      green = 0.59999999999999998, blue = 0.59999999999999998, alpha = 1, 
      red_short = 39321, green_short = 39321, blue_short = 39321, 
      alpha_short = 65535}, content = CAIRO_CONTENT_COLOR_ALPHA}, surface = {
    base = {type = CAIRO_PATTERN_TYPE_SOLID, ref_count = 1, 
      status = CAIRO_STATUS_SUCCESS, user_data = {size = 0, num_elements = 0, 
        element_size = 12, elements = 0x0, is_snapshot = 0}, matrix = {
        xx = 1310720, yx = 0, xy = 0, yy = 1310720, x0 = -786432, 
        y0 = -1245184}, filter = CAIRO_FILTER_BEST, 
      extend = CAIRO_EXTEND_PAD}, surface = 0x33333333}, gradient = {base = {
      base = {type = CAIRO_PATTERN_TYPE_SOLID, ref_count = 1, 
        status = CAIRO_STATUS_SUCCESS, user_data = {size = 0, 
          num_elements = 0, element_size = 12, elements = 0x0, 
---Type <return> to continue, or q <return> to quit---
          is_snapshot = 0}, matrix = {xx = 1310720, yx = 0, xy = 0, 
          yy = 1310720, x0 = -786432, y0 = -1245184}, 
        filter = CAIRO_FILTER_BEST, extend = CAIRO_EXTEND_PAD}, 
      n_stops = 858993459, stops_size = 1071854387, stops = 0x33333333, 
      stops_embedded = {{x = 1071854387, color = {red = 13107, green = 13107, 
            blue = 13107, alpha = 16355}}, {x = 0, color = {red = 0, 
            green = 16368, blue = 39321, alpha = 39321}}}}, linear = {base = {
        base = {type = CAIRO_PATTERN_TYPE_SOLID, ref_count = 1, 
          status = CAIRO_STATUS_SUCCESS, user_data = {size = 0, 
            num_elements = 0, element_size = 12, elements = 0x0, 
            is_snapshot = 0}, matrix = {xx = 1310720, yx = 0, xy = 0, 
            yy = 1310720, x0 = -786432, y0 = -1245184}, 
          filter = CAIRO_FILTER_BEST, extend = CAIRO_EXTEND_PAD}, 
        n_stops = 858993459, stops_size = 1071854387, stops = 0x33333333, 
        stops_embedded = {{x = 1071854387, color = {red = 13107, 
              green = 13107, blue = 13107, alpha = 16355}}, {x = 0, color = {
              red = 0, green = 16368, blue = 39321, alpha = 39321}}}}, 
      gradient = {p1 = {x = -26215, y = 12288}, p2 = {x = 0, y = 0}}}, 
    radial = {base = {base = {type = CAIRO_PATTERN_TYPE_SOLID, ref_count = 1, 
          status = CAIRO_STATUS_SUCCESS, user_data = {size = 0, 
            num_elements = 0, element_size = 12, elements = 0x0, 
            is_snapshot = 0}, matrix = {xx = 1310720, yx = 0, xy = 0, 
            yy = 1310720, x0 = -786432, y0 = -1245184}, 
---Type <return> to continue, or q <return> to quit---
          filter = CAIRO_FILTER_BEST, extend = CAIRO_EXTEND_PAD}, 
        n_stops = 858993459, stops_size = 1071854387, stops = 0x33333333, 
        stops_embedded = {{x = 1071854387, color = {red = 13107, 
              green = 13107, blue = 13107, alpha = 16355}}, {x = 0, color = {
              red = 0, green = 16368, blue = 39321, alpha = 39321}}}}, 
      gradient = {c1 = {x = -26215, y = 12288, radius = 0}, c2 = {x = 0, 
          y = 1072693248, radius = 0}}}}}
        real_dev_path = {last_move_point = {x = 2, y = -1076608092}, 
  current_point = {x = 0, y = 0}, has_current_point = 0, has_curve_to = 0, 
  buf_tail = 0x0, buf_head = {{next = 0x0, prev = 0x0, num_ops = 0, 
      num_points = 0, op = {9, CAIRO_PATH_OP_MOVE_TO, CAIRO_PATH_OP_MOVE_TO, 
        CAIRO_PATH_OP_MOVE_TO, 212, 66, 212, 191, 136, 241, 130, 10, 8, 
        CAIRO_PATH_OP_MOVE_TO, CAIRO_PATH_OP_MOVE_TO, CAIRO_PATH_OP_MOVE_TO, 
        149, 153, CAIRO_PATH_OP_MOVE_TO, CAIRO_PATH_OP_MOVE_TO, 47, 243, 
        CAIRO_PATH_OP_MOVE_TO, CAIRO_PATH_OP_MOVE_TO, 158, 153, 
        CAIRO_PATH_OP_MOVE_TO, CAIRO_PATH_OP_MOVE_TO, 56, 243, 
        CAIRO_PATH_OP_MOVE_TO, CAIRO_PATH_OP_MOVE_TO, 160, 56, 212, 191, 84, 
        136, 123, 183, 158, 153, CAIRO_PATH_OP_MOVE_TO, CAIRO_PATH_OP_MOVE_TO, 
        47, 243, CAIRO_PATH_OP_MOVE_TO, CAIRO_PATH_OP_MOVE_TO, 149, 153, 
        CAIRO_PATH_OP_MOVE_TO}, points = {{x = -1216257704, y = -1216257704}, {
          x = 0, y = -1076608360}, {x = -1216654456, y = -1076608604}, {
          x = -1076608604, y = 1}, {x = -1216654128, y = -1216654048}, {
          x = -1216654704, y = -1076608624}, {x = 0, y = -1717986918}, {
---Type <return> to continue, or q <return> to quit---
          x = -1220092067, y = 176403456}, {x = -1219976896, y = 257}, {
          x = -1219976852, y = -1219976852}, {x = 0, y = -1219976848}, {
          x = 32, y = 39325}, {x = 62256, y = 39325}, {x = 62256, 
          y = -1220882197}, {x = -1219981324, y = 176404096}, {x = 653696, 
          y = -1076608448}, {x = -1220875218, y = 39326}, {x = 62259, y = 1}, {
          x = -1216444336, y = 39326}, {x = 62259, y = 39325}, {x = 176404096, 
          y = 1}, {x = 652184, y = -1220079296}, {x = 62262, y = 39322}, {
          x = 62264, y = 1}, {x = 0, y = 39318}, {x = 62262, y = 39322}, {
          x = 62264, y = 0}, {x = 176405608, y = 39317}, {x = 62259, 
          y = 39318}, {x = -1219981324, y = -1219976896}, {x = 176404328, 
          y = -1076608392}, {x = -1220859664, y = -1219976896}, {
          x = 176404328, y = 62255}, {x = 39326, y = 62264}, {x = 176404320, 
          y = 39318}, {x = 62256, y = 0}, {x = -1216257704, y = -1076608300}, {
          x = -1076608300, y = -1076608360}, {x = -1216609200, y = 176404328}, 
        {x = 0, y = 65537}, {x = -1216257704, y = -1216257704}, {x = 0, 
          y = -1076608168}, {x = -1216610437, y = -1076608300}, {
          x = 176403436, y = 0}, {x = 1069128089, y = -1076608300}, {
          x = -1216654704, y = 0}, {x = 1093926912, y = 0}, {x = -1076608192, 
          y = -1717986918}, {x = 1069128089, y = 0}, {x = 0, y = 39317}, {
          x = 62255, y = 39326}}}}}
        dev_ctm = {xx = 7.6293945312500004e-07, yx = 0, xy = 0, 
  yy = 7.6293945312500004e-07, x0 = 426.60000000000002, 
  y0 = 269.94999999999999}
---Type <return> to continue, or q <return> to quit---
        dev_ctm_inverse = {xx = 1310720, yx = 0, xy = 0, yy = 1310720, 
  x0 = -559153152, y0 = -353828864}
        __PRETTY_FUNCTION__ = "_cairo_surface_stroke"
#10 0xb77b0379 in _cairo_gstate_stroke (gstate=0xa83b368, path=0xa83abe8)
    at /home/rm/swfdec/cairo/libcairo-1.4.10/src/cairo-gstate.c:975
        status = CAIRO_STATUS_SUCCESS
        source_pattern = {base = {type = CAIRO_PATTERN_TYPE_SOLID, 
    ref_count = 1, status = CAIRO_STATUS_SUCCESS, user_data = {size = 0, 
      num_elements = 0, element_size = 12, elements = 0x0, is_snapshot = 0}, 
    matrix = {xx = 1310720, yx = 0, xy = 0, yy = 1310720, x0 = -559153152, 
      y0 = -353828864}, filter = CAIRO_FILTER_BEST, 
    extend = CAIRO_EXTEND_PAD}, solid = {base = {
      type = CAIRO_PATTERN_TYPE_SOLID, ref_count = 1, 
      status = CAIRO_STATUS_SUCCESS, user_data = {size = 0, num_elements = 0, 
        element_size = 12, elements = 0x0, is_snapshot = 0}, matrix = {
        xx = 1310720, yx = 0, xy = 0, yy = 1310720, x0 = -559153152, 
        y0 = -353828864}, filter = CAIRO_FILTER_BEST, 
      extend = CAIRO_EXTEND_PAD}, color = {red = 0.59999999999999998, 
      green = 0.59999999999999998, blue = 0.59999999999999998, alpha = 1, 
      red_short = 39321, green_short = 39321, blue_short = 39321, 
      alpha_short = 65535}, content = CAIRO_CONTENT_COLOR_ALPHA}, surface = {
    base = {type = CAIRO_PATTERN_TYPE_SOLID, ref_count = 1, 
      status = CAIRO_STATUS_SUCCESS, user_data = {size = 0, num_elements = 0, 
---Type <return> to continue, or q <return> to quit---
        element_size = 12, elements = 0x0, is_snapshot = 0}, matrix = {
        xx = 1310720, yx = 0, xy = 0, yy = 1310720, x0 = -559153152, 
        y0 = -353828864}, filter = CAIRO_FILTER_BEST, 
      extend = CAIRO_EXTEND_PAD}, surface = 0x33333333}, gradient = {base = {
      base = {type = CAIRO_PATTERN_TYPE_SOLID, ref_count = 1, 
        status = CAIRO_STATUS_SUCCESS, user_data = {size = 0, 
          num_elements = 0, element_size = 12, elements = 0x0, 
          is_snapshot = 0}, matrix = {xx = 1310720, yx = 0, xy = 0, 
          yy = 1310720, x0 = -559153152, y0 = -353828864}, 
        filter = CAIRO_FILTER_BEST, extend = CAIRO_EXTEND_PAD}, 
      n_stops = 858993459, stops_size = 1071854387, stops = 0x33333333, 
      stops_embedded = {{x = 1071854387, color = {red = 13107, green = 13107, 
            blue = 13107, alpha = 16355}}, {x = 0, color = {red = 0, 
            green = 16368, blue = 39321, alpha = 39321}}}}, linear = {base = {
        base = {type = CAIRO_PATTERN_TYPE_SOLID, ref_count = 1, 
          status = CAIRO_STATUS_SUCCESS, user_data = {size = 0, 
            num_elements = 0, element_size = 12, elements = 0x0, 
            is_snapshot = 0}, matrix = {xx = 1310720, yx = 0, xy = 0, 
            yy = 1310720, x0 = -559153152, y0 = -353828864}, 
          filter = CAIRO_FILTER_BEST, extend = CAIRO_EXTEND_PAD}, 
        n_stops = 858993459, stops_size = 1071854387, stops = 0x33333333, 
        stops_embedded = {{x = 1071854387, color = {red = 13107, 
              green = 13107, blue = 13107, alpha = 16355}}, {x = 0, color = {
---Type <return> to continue, or q <return> to quit---
              red = 0, green = 16368, blue = 39321, alpha = 39321}}}}, 
      gradient = {p1 = {x = -26215, y = 12288}, p2 = {x = 1071854387, 
          y = 858993459}}}, radial = {base = {base = {
          type = CAIRO_PATTERN_TYPE_SOLID, ref_count = 1, 
          status = CAIRO_STATUS_SUCCESS, user_data = {size = 0, 
            num_elements = 0, element_size = 12, elements = 0x0, 
            is_snapshot = 0}, matrix = {xx = 1310720, yx = 0, xy = 0, 
            yy = 1310720, x0 = -559153152, y0 = -353828864}, 
          filter = CAIRO_FILTER_BEST, extend = CAIRO_EXTEND_PAD}, 
        n_stops = 858993459, stops_size = 1071854387, stops = 0x33333333, 
        stops_embedded = {{x = 1071854387, color = {red = 13107, 
              green = 13107, blue = 13107, alpha = 16355}}, {x = 0, color = {
              red = 0, green = 16368, blue = 39321, alpha = 39321}}}}, 
      gradient = {c1 = {x = -26215, y = 12288, radius = 1071854387}, c2 = {
          x = 858993459, y = 1071854387, radius = 153}}}}}
#11 0xb77a8f4c in *INT_cairo_stroke_preserve (cr=0xa83aa78)
    at /home/rm/swfdec/cairo/libcairo-1.4.10/src/cairo.c:2053
        status = <value optimized out>
#12 0xb77a8f72 in cairo_stroke (cr=0xa83aa78)
    at /home/rm/swfdec/cairo/libcairo-1.4.10/src/cairo.c:2027
No locals.
#13 0xb0dc866f in swfdec_stroke_paint (draw=0x9995758, cr=0xa83aa78, 
    trans=0xbfd44718) at swfdec_stroke.c:124
---Type <return> to continue, or q <return> to quit---
        stroke = (SwfdecStroke *) 0x9995758
        color = <value optimized out>
#14 0xb0d9737e in swfdec_draw_paint (draw=0x9995758, cr=0xa83aa78, 
    trans=0xbfd44718) at swfdec_draw.c:129
        __PRETTY_FUNCTION__ = "swfdec_draw_paint"
#15 0xb0dc3cce in swfdec_shape_render (graphic=0xa7ff240, cr=0xa83aa78, 
    trans=0xbfd44718, inval=0xbfd446f8) at swfdec_shape.c:63
        draw = (SwfdecDraw *) 0x9995758
        walk = (GSList *) 0xa7fed58
#16 0xb0da5dfc in swfdec_graphic_render (graphic=0x26e9, cr=0xa83aa78, 
    trans=0xbfd44718, inval=0xbfd446f8) at swfdec_graphic.c:59
No locals.
#17 0xb0da6135 in swfdec_graphic_movie_render (movie=0xa80adb0, cr=0xa83aa78, 
    trans=0xbfd44718, inval=0xbfd446f8) at swfdec_graphic_movie.c:49
No locals.
#18 0xb0dad67f in swfdec_movie_render (movie=0xa80adb0, cr=0xa83aa78, 
    color_transform=0xbfd44858, inval=0xbfd44838) at swfdec_movie.c:895
        child = (SwfdecMovie *) 0x0
        g = (GList *) 0x0
        walk = (GSList *) 0x0
        clip_depth = 1101404160
        trans = {ra = 256, rb = 0, ga = 256, gb = 0, ba = 256, bb = 0, 
  aa = 256, ab = 0}
---Type <return> to continue, or q <return> to quit---
        rect = {x0 = -786432, y0 = -1245184, x1 = 185335808, y1 = 65536}
        group = 0
        mask = (cairo_pattern_t *) 0x41a61800
        __PRETTY_FUNCTION__ = "swfdec_movie_render"
        matrix = {xx = 0.050000000000000003, yx = 0, xy = 0, 
  yy = 0.050000000000000003, x0 = 0, y0 = 0}
#19 0xb0dad767 in swfdec_movie_render (movie=0xa8099e8, cr=0xa83aa78, 
    color_transform=0xbfd44998, inval=0xbfd44978) at swfdec_movie.c:885
        child = (SwfdecMovie *) 0xa80adb0
        g = (GList *) 0xa825c20
        walk = <value optimized out>
        clip_depth = 0
        trans = {ra = 256, rb = 0, ga = 256, gb = 0, ba = 256, bb = 0, 
  aa = 256, ab = 0}
        rect = {x0 = -786432, y0 = -1245184, x1 = 185335808, y1 = 65536}
        group = 0
        mask = (cairo_pattern_t *) 0x0
        __PRETTY_FUNCTION__ = "swfdec_movie_render"
        matrix = {xx = 0.050000000000000003, yx = 0, xy = 0, 
  yy = 0.050000000000000003, x0 = 0, y0 = 0}
#20 0xb0dad767 in swfdec_movie_render (movie=0xa8097f0, cr=0xa83aa78, 
    color_transform=0xb0df3380, inval=0xbfd44a70) at swfdec_movie.c:885
        child = (SwfdecMovie *) 0xa8099e8
---Type <return> to continue, or q <return> to quit---
        g = (GList *) 0xa825b60
        walk = <value optimized out>
        clip_depth = 0
        trans = {ra = 256, rb = 0, ga = 256, gb = 0, ba = 256, bb = 0, 
  aa = 256, ab = 0}
        rect = {x0 = 6180, y0 = 4060, x1 = 9020, y1 = 4080}
        group = 0
        mask = (cairo_pattern_t *) 0x0
        __PRETTY_FUNCTION__ = "swfdec_movie_render"
        matrix = {xx = 0.050000000000000003, yx = 0, xy = 0, 
  yy = 0.050000000000000003, x0 = 0, y0 = 0}
#21 0xb0db949c in swfdec_player_render (player=0xa68c158, cr=0xa83aa78, x=309, 
    y=203, width=451, height=204) at swfdec_player.c:2249
        walk = (GList *) 0xa8049d0
        real = {x0 = 6180, y0 = 4060, x1 = 9020, y1 = 4080}
        trans = {ra = 256, rb = 0, ga = 256, gb = 0, ba = 256, bb = 0, 
  aa = 256, ab = 0}
        __PRETTY_FUNCTION__ = "swfdec_player_render"
#22 0xb177b1c6 in swfmoz_player_render (player=0x9b31b88, region=0xa839020)
    at swfmoz_player.c:610
        rect = {x = 426, y = 269, width = 142, height = 1}
        cr = (cairo_t *) 0xa83aa78
        __PRETTY_FUNCTION__ = "swfmoz_player_render"
---Type <return> to continue, or q <return> to quit---
#23 0xb177ba94 in swfmoz_player_idle_redraw (playerp=0x9b31b88)
    at swfmoz_player.c:157
        region = (GdkRegion *) 0xa839020

Program received signal SIGABRT, Aborted.
---Type <return> to continue, or q <return> to quit---
[Switching to Thread 0xb718e920 (LWP 9961)]
0xb736f7d6 in raise () from /lib/libc.so.6
(gdb) bt full
#0  0xb736f7d6 in raise () from /lib/libc.so.6
No symbol table info available.
#1  0xb73710f1 in abort () from /lib/libc.so.6
No symbol table info available.
#2  0xb7368b50 in __assert_fail () from /lib/libc.so.6
No symbol table info available.
#3  0xb77b7f4f in _cairo_pen_find_active_cw_vertex_index (pen=0xbfd43f00, 
    slope=0xbfd43dd0, active=0xbfd43dd8)
    at /home/rm/swfdec/cairo/libcairo-1.4.10/src/cairo-pen.c:324
        i = 4
        __PRETTY_FUNCTION__ = "_cairo_pen_find_active_cw_vertex_index"
#4  0xb77b668e in _cairo_stroker_add_cap (stroker=0xbfd43ee8, f=0xbfd43e00)
    at /home/rm/swfdec/cairo/libcairo-1.4.10/src/cairo-path-stroke.c:397
        i = <value optimized out>
        stop = <value optimized out>
        slope = {dx = -2, dy = -1}
        tri = {{x = 39324, y = 62256}, {x = 0, y = 1}, {x = 0, y = 0}}
        pen = (cairo_pen_t *) 0xbfd43f00
        start = <value optimized out>
        status = <value optimized out>
#5  0xb77b6945 in _cairo_stroker_add_leading_cap (stroker=0x0, 
    face=<value optimized out>)
    at /home/rm/swfdec/cairo/libcairo-1.4.10/src/cairo-path-stroke.c:480
---Type <return> to continue, or q <return> to quit---
        reversed = {ccw = {x = 39324, y = 62256}, point = {x = 39324, 
    y = 62256}, cw = {x = 39324, y = 62256}, dev_vector = {dx = -2, dy = -1}, 
  usr_vector = {x = -0.89442719099991586, y = -0.44721359549995793}}
#6  0xb77b6976 in _cairo_stroker_add_caps (stroker=0xbfd43ee8)
    at /home/rm/swfdec/cairo/libcairo-1.4.10/src/cairo-path-stroke.c:520
        status = <value optimized out>
#7  0xb77b6d1c in _cairo_path_fixed_stroke_to_traps (path=0xa83abe8, 
    stroke_style=0xa83b378, ctm=0xbfd443a8, ctm_inverse=0xbfd44378, 
    tolerance=0.10000000000000001, traps=0xbfd44024)
    at /home/rm/swfdec/cairo/libcairo-1.4.10/src/cairo-path-stroke.c:1024
        status = CAIRO_STATUS_SUCCESS
        stroker = {style = 0xa83b378, ctm = 0xbfd443a8, 
  ctm_inverse = 0xbfd44378, tolerance = 0.10000000000000001, 
  traps = 0xbfd44024, pen = {radius = 10, tolerance = 0.10000000000000001, 
    vertices = 0xa28b990, num_vertices = 4}, current_point = {x = 39324, 
    y = 62256}, first_point = {x = 39324, y = 62256}, 
  has_initial_sub_path = 0, has_current_face = 1, current_face = {ccw = {
      x = 39324, y = 62256}, point = {x = 39324, y = 62256}, cw = {x = 39324, 
      y = 62256}, dev_vector = {dx = 0, dy = 1}, usr_vector = {x = 0, y = 1}}, 
  has_first_face = 1, first_face = {ccw = {x = 39324, y = 62256}, point = {
      x = 39324, y = 62256}, cw = {x = 39324, y = 62256}, dev_vector = {
      dx = 2, dy = 1}, usr_vector = {x = 0.89442719099991586, 
      y = 0.44721359549995793}}, dashed = 0, dash_index = 3218358248, 
---Type <return> to continue, or q <return> to quit---
  dash_on = -1216433589, dash_starts_on = -1216441344, dash_remain = 0}
#8  0xb77c01c5 in _cairo_surface_fallback_stroke (surface=0xa83a7b0, 
    op=CAIRO_OPERATOR_OVER, source=0xbfd442e4, path=0xa83abe8, 
    stroke_style=0xa83b378, ctm=0xbfd443a8, ctm_inverse=0xbfd44378, 
    tolerance=0.10000000000000001, antialias=CAIRO_ANTIALIAS_DEFAULT)
    at /home/rm/swfdec/cairo/libcairo-1.4.10/src/cairo-surface-fallback.c:836
        status = CAIRO_STATUS_SUCCESS
        traps = {status = CAIRO_STATUS_SUCCESS, extents = {p1 = {
      x = 2147483647, y = 2147483647}, p2 = {x = -2147483648, 
      y = -2147483648}}, num_traps = 0, traps_size = 1, traps = 0xbfd44044, 
  traps_embedded = {{top = 0, bottom = -1076608856, left = {p1 = {
          x = -1216621436, y = -1076608284}, p2 = {x = -1076608920, y = 0}}, 
      right = {p1 = {x = 0, y = 0}, p2 = {x = -1076608284, y = 0}}}}, 
  has_limits = 1, limits = {p1 = {x = 0, y = 0}, p2 = {x = 9306112, 
      y = 65536}}}
        box = {p1 = {x = 0, y = 0}, p2 = {x = 9306112, y = 65536}}
        extents = {x = 0, y = 0, width = 142, height = 1}
#9  0xb77bd7ab in _cairo_surface_stroke (surface=0xa83a7b0, 
    op=CAIRO_OPERATOR_OVER, source=0xbfd44428, path=0xa83abe8, 
    stroke_style=0xa83b378, ctm=0xa83b420, ctm_inverse=0xa83b450, 
    tolerance=0.10000000000000001, antialias=CAIRO_ANTIALIAS_DEFAULT)
    at /home/rm/swfdec/cairo/libcairo-1.4.10/src/cairo-surface.c:1414
        status = CAIRO_STATUS_SUCCESS
---Type <return> to continue, or q <return> to quit---
        dev_source = {base = {type = CAIRO_PATTERN_TYPE_SOLID, ref_count = 1, 
    status = CAIRO_STATUS_SUCCESS, user_data = {size = 0, num_elements = 0, 
      element_size = 12, elements = 0x0, is_snapshot = 0}, matrix = {
      xx = 1310720, yx = 0, xy = 0, yy = 1310720, x0 = -786432, 
      y0 = -1245184}, filter = CAIRO_FILTER_BEST, extend = CAIRO_EXTEND_PAD}, 
  solid = {base = {type = CAIRO_PATTERN_TYPE_SOLID, ref_count = 1, 
      status = CAIRO_STATUS_SUCCESS, user_data = {size = 0, num_elements = 0, 
        element_size = 12, elements = 0x0, is_snapshot = 0}, matrix = {
        xx = 1310720, yx = 0, xy = 0, yy = 1310720, x0 = -786432, 
        y0 = -1245184}, filter = CAIRO_FILTER_BEST, 
      extend = CAIRO_EXTEND_PAD}, color = {red = 0.59999999999999998, 
      green = 0.59999999999999998, blue = 0.59999999999999998, alpha = 1, 
      red_short = 39321, green_short = 39321, blue_short = 39321, 
      alpha_short = 65535}, content = CAIRO_CONTENT_COLOR_ALPHA}, surface = {
    base = {type = CAIRO_PATTERN_TYPE_SOLID, ref_count = 1, 
      status = CAIRO_STATUS_SUCCESS, user_data = {size = 0, num_elements = 0, 
        element_size = 12, elements = 0x0, is_snapshot = 0}, matrix = {
        xx = 1310720, yx = 0, xy = 0, yy = 1310720, x0 = -786432, 
        y0 = -1245184}, filter = CAIRO_FILTER_BEST, 
      extend = CAIRO_EXTEND_PAD}, surface = 0x33333333}, gradient = {base = {
      base = {type = CAIRO_PATTERN_TYPE_SOLID, ref_count = 1, 
        status = CAIRO_STATUS_SUCCESS, user_data = {size = 0, 
          num_elements = 0, element_size = 12, elements = 0x0, 
---Type <return> to continue, or q <return> to quit---
          is_snapshot = 0}, matrix = {xx = 1310720, yx = 0, xy = 0, 
          yy = 1310720, x0 = -786432, y0 = -1245184}, 
        filter = CAIRO_FILTER_BEST, extend = CAIRO_EXTEND_PAD}, 
      n_stops = 858993459, stops_size = 1071854387, stops = 0x33333333, 
      stops_embedded = {{x = 1071854387, color = {red = 13107, green = 13107, 
            blue = 13107, alpha = 16355}}, {x = 0, color = {red = 0, 
            green = 16368, blue = 39321, alpha = 39321}}}}, linear = {base = {
        base = {type = CAIRO_PATTERN_TYPE_SOLID, ref_count = 1, 
          status = CAIRO_STATUS_SUCCESS, user_data = {size = 0, 
            num_elements = 0, element_size = 12, elements = 0x0, 
            is_snapshot = 0}, matrix = {xx = 1310720, yx = 0, xy = 0, 
            yy = 1310720, x0 = -786432, y0 = -1245184}, 
          filter = CAIRO_FILTER_BEST, extend = CAIRO_EXTEND_PAD}, 
        n_stops = 858993459, stops_size = 1071854387, stops = 0x33333333, 
        stops_embedded = {{x = 1071854387, color = {red = 13107, 
              green = 13107, blue = 13107, alpha = 16355}}, {x = 0, color = {
              red = 0, green = 16368, blue = 39321, alpha = 39321}}}}, 
      gradient = {p1 = {x = -26215, y = 12288}, p2 = {x = 0, y = 0}}}, 
    radial = {base = {base = {type = CAIRO_PATTERN_TYPE_SOLID, ref_count = 1, 
          status = CAIRO_STATUS_SUCCESS, user_data = {size = 0, 
            num_elements = 0, element_size = 12, elements = 0x0, 
            is_snapshot = 0}, matrix = {xx = 1310720, yx = 0, xy = 0, 
            yy = 1310720, x0 = -786432, y0 = -1245184}, 
---Type <return> to continue, or q <return> to quit---
          filter = CAIRO_FILTER_BEST, extend = CAIRO_EXTEND_PAD}, 
        n_stops = 858993459, stops_size = 1071854387, stops = 0x33333333, 
        stops_embedded = {{x = 1071854387, color = {red = 13107, 
              green = 13107, blue = 13107, alpha = 16355}}, {x = 0, color = {
              red = 0, green = 16368, blue = 39321, alpha = 39321}}}}, 
      gradient = {c1 = {x = -26215, y = 12288, radius = 0}, c2 = {x = 0, 
          y = 1072693248, radius = 0}}}}}
        real_dev_path = {last_move_point = {x = 2, y = -1076608092}, 
  current_point = {x = 0, y = 0}, has_current_point = 0, has_curve_to = 0, 
  buf_tail = 0x0, buf_head = {{next = 0x0, prev = 0x0, num_ops = 0, 
      num_points = 0, op = {9, CAIRO_PATH_OP_MOVE_TO, CAIRO_PATH_OP_MOVE_TO, 
        CAIRO_PATH_OP_MOVE_TO, 212, 66, 212, 191, 136, 241, 130, 10, 8, 
        CAIRO_PATH_OP_MOVE_TO, CAIRO_PATH_OP_MOVE_TO, CAIRO_PATH_OP_MOVE_TO, 
        149, 153, CAIRO_PATH_OP_MOVE_TO, CAIRO_PATH_OP_MOVE_TO, 47, 243, 
        CAIRO_PATH_OP_MOVE_TO, CAIRO_PATH_OP_MOVE_TO, 158, 153, 
        CAIRO_PATH_OP_MOVE_TO, CAIRO_PATH_OP_MOVE_TO, 56, 243, 
        CAIRO_PATH_OP_MOVE_TO, CAIRO_PATH_OP_MOVE_TO, 160, 56, 212, 191, 84, 
        136, 123, 183, 158, 153, CAIRO_PATH_OP_MOVE_TO, CAIRO_PATH_OP_MOVE_TO, 
        47, 243, CAIRO_PATH_OP_MOVE_TO, CAIRO_PATH_OP_MOVE_TO, 149, 153, 
        CAIRO_PATH_OP_MOVE_TO}, points = {{x = -1216257704, y = -1216257704}, {
          x = 0, y = -1076608360}, {x = -1216654456, y = -1076608604}, {
          x = -1076608604, y = 1}, {x = -1216654128, y = -1216654048}, {
          x = -1216654704, y = -1076608624}, {x = 0, y = -1717986918}, {
---Type <return> to continue, or q <return> to quit---
          x = -1220092067, y = 176403456}, {x = -1219976896, y = 257}, {
          x = -1219976852, y = -1219976852}, {x = 0, y = -1219976848}, {
          x = 32, y = 39325}, {x = 62256, y = 39325}, {x = 62256, 
          y = -1220882197}, {x = -1219981324, y = 176404096}, {x = 653696, 
          y = -1076608448}, {x = -1220875218, y = 39326}, {x = 62259, y = 1}, {
          x = -1216444336, y = 39326}, {x = 62259, y = 39325}, {x = 176404096, 
          y = 1}, {x = 652184, y = -1220079296}, {x = 62262, y = 39322}, {
          x = 62264, y = 1}, {x = 0, y = 39318}, {x = 62262, y = 39322}, {
          x = 62264, y = 0}, {x = 176405608, y = 39317}, {x = 62259, 
          y = 39318}, {x = -1219981324, y = -1219976896}, {x = 176404328, 
          y = -1076608392}, {x = -1220859664, y = -1219976896}, {
          x = 176404328, y = 62255}, {x = 39326, y = 62264}, {x = 176404320, 
          y = 39318}, {x = 62256, y = 0}, {x = -1216257704, y = -1076608300}, {
          x = -1076608300, y = -1076608360}, {x = -1216609200, y = 176404328}, 
        {x = 0, y = 65537}, {x = -1216257704, y = -1216257704}, {x = 0, 
          y = -1076608168}, {x = -1216610437, y = -1076608300}, {
          x = 176403436, y = 0}, {x = 1069128089, y = -1076608300}, {
          x = -1216654704, y = 0}, {x = 1093926912, y = 0}, {x = -1076608192, 
          y = -1717986918}, {x = 1069128089, y = 0}, {x = 0, y = 39317}, {
          x = 62255, y = 39326}}}}}
        dev_ctm = {xx = 7.6293945312500004e-07, yx = 0, xy = 0, 
  yy = 7.6293945312500004e-07, x0 = 426.60000000000002, 
  y0 = 269.94999999999999}
---Type <return> to continue, or q <return> to quit---
        dev_ctm_inverse = {xx = 1310720, yx = 0, xy = 0, yy = 1310720, 
  x0 = -559153152, y0 = -353828864}
        __PRETTY_FUNCTION__ = "_cairo_surface_stroke"
#10 0xb77b0379 in _cairo_gstate_stroke (gstate=0xa83b368, path=0xa83abe8)
    at /home/rm/swfdec/cairo/libcairo-1.4.10/src/cairo-gstate.c:975
        status = CAIRO_STATUS_SUCCESS
        source_pattern = {base = {type = CAIRO_PATTERN_TYPE_SOLID, 
    ref_count = 1, status = CAIRO_STATUS_SUCCESS, user_data = {size = 0, 
      num_elements = 0, element_size = 12, elements = 0x0, is_snapshot = 0}, 
    matrix = {xx = 1310720, yx = 0, xy = 0, yy = 1310720, x0 = -559153152, 
      y0 = -353828864}, filter = CAIRO_FILTER_BEST, 
    extend = CAIRO_EXTEND_PAD}, solid = {base = {
      type = CAIRO_PATTERN_TYPE_SOLID, ref_count = 1, 
      status = CAIRO_STATUS_SUCCESS, user_data = {size = 0, num_elements = 0, 
        element_size = 12, elements = 0x0, is_snapshot = 0}, matrix = {
        xx = 1310720, yx = 0, xy = 0, yy = 1310720, x0 = -559153152, 
        y0 = -353828864}, filter = CAIRO_FILTER_BEST, 
      extend = CAIRO_EXTEND_PAD}, color = {red = 0.59999999999999998, 
      green = 0.59999999999999998, blue = 0.59999999999999998, alpha = 1, 
      red_short = 39321, green_short = 39321, blue_short = 39321, 
      alpha_short = 65535}, content = CAIRO_CONTENT_COLOR_ALPHA}, surface = {
    base = {type = CAIRO_PATTERN_TYPE_SOLID, ref_count = 1, 
      status = CAIRO_STATUS_SUCCESS, user_data = {size = 0, num_elements = 0, 
---Type <return> to continue, or q <return> to quit---
        element_size = 12, elements = 0x0, is_snapshot = 0}, matrix = {
        xx = 1310720, yx = 0, xy = 0, yy = 1310720, x0 = -559153152, 
        y0 = -353828864}, filter = CAIRO_FILTER_BEST, 
      extend = CAIRO_EXTEND_PAD}, surface = 0x33333333}, gradient = {base = {
      base = {type = CAIRO_PATTERN_TYPE_SOLID, ref_count = 1, 
        status = CAIRO_STATUS_SUCCESS, user_data = {size = 0, 
          num_elements = 0, element_size = 12, elements = 0x0, 
          is_snapshot = 0}, matrix = {xx = 1310720, yx = 0, xy = 0, 
          yy = 1310720, x0 = -559153152, y0 = -353828864}, 
        filter = CAIRO_FILTER_BEST, extend = CAIRO_EXTEND_PAD}, 
      n_stops = 858993459, stops_size = 1071854387, stops = 0x33333333, 
      stops_embedded = {{x = 1071854387, color = {red = 13107, green = 13107, 
            blue = 13107, alpha = 16355}}, {x = 0, color = {red = 0, 
            green = 16368, blue = 39321, alpha = 39321}}}}, linear = {base = {
        base = {type = CAIRO_PATTERN_TYPE_SOLID, ref_count = 1, 
          status = CAIRO_STATUS_SUCCESS, user_data = {size = 0, 
            num_elements = 0, element_size = 12, elements = 0x0, 
            is_snapshot = 0}, matrix = {xx = 1310720, yx = 0, xy = 0, 
            yy = 1310720, x0 = -559153152, y0 = -353828864}, 
          filter = CAIRO_FILTER_BEST, extend = CAIRO_EXTEND_PAD}, 
        n_stops = 858993459, stops_size = 1071854387, stops = 0x33333333, 
        stops_embedded = {{x = 1071854387, color = {red = 13107, 
              green = 13107, blue = 13107, alpha = 16355}}, {x = 0, color = {
---Type <return> to continue, or q <return> to quit---
              red = 0, green = 16368, blue = 39321, alpha = 39321}}}}, 
      gradient = {p1 = {x = -26215, y = 12288}, p2 = {x = 1071854387, 
          y = 858993459}}}, radial = {base = {base = {
          type = CAIRO_PATTERN_TYPE_SOLID, ref_count = 1, 
          status = CAIRO_STATUS_SUCCESS, user_data = {size = 0, 
            num_elements = 0, element_size = 12, elements = 0x0, 
            is_snapshot = 0}, matrix = {xx = 1310720, yx = 0, xy = 0, 
            yy = 1310720, x0 = -559153152, y0 = -353828864}, 
          filter = CAIRO_FILTER_BEST, extend = CAIRO_EXTEND_PAD}, 
        n_stops = 858993459, stops_size = 1071854387, stops = 0x33333333, 
        stops_embedded = {{x = 1071854387, color = {red = 13107, 
              green = 13107, blue = 13107, alpha = 16355}}, {x = 0, color = {
              red = 0, green = 16368, blue = 39321, alpha = 39321}}}}, 
      gradient = {c1 = {x = -26215, y = 12288, radius = 1071854387}, c2 = {
          x = 858993459, y = 1071854387, radius = 153}}}}}
#11 0xb77a8f4c in *INT_cairo_stroke_preserve (cr=0xa83aa78)
    at /home/rm/swfdec/cairo/libcairo-1.4.10/src/cairo.c:2053
        status = <value optimized out>
#12 0xb77a8f72 in cairo_stroke (cr=0xa83aa78)
    at /home/rm/swfdec/cairo/libcairo-1.4.10/src/cairo.c:2027
No locals.
#13 0xb0dc866f in swfdec_stroke_paint (draw=0x9995758, cr=0xa83aa78, 
    trans=0xbfd44718) at swfdec_stroke.c:124
---Type <return> to continue, or q <return> to quit---
        stroke = (SwfdecStroke *) 0x9995758
        color = <value optimized out>
#14 0xb0d9737e in swfdec_draw_paint (draw=0x9995758, cr=0xa83aa78, 
    trans=0xbfd44718) at swfdec_draw.c:129
        __PRETTY_FUNCTION__ = "swfdec_draw_paint"
#15 0xb0dc3cce in swfdec_shape_render (graphic=0xa7ff240, cr=0xa83aa78, 
    trans=0xbfd44718, inval=0xbfd446f8) at swfdec_shape.c:63
        draw = (SwfdecDraw *) 0x9995758
        walk = (GSList *) 0xa7fed58
#16 0xb0da5dfc in swfdec_graphic_render (graphic=0x26e9, cr=0xa83aa78, 
    trans=0xbfd44718, inval=0xbfd446f8) at swfdec_graphic.c:59
No locals.
#17 0xb0da6135 in swfdec_graphic_movie_render (movie=0xa80adb0, cr=0xa83aa78, 
    trans=0xbfd44718, inval=0xbfd446f8) at swfdec_graphic_movie.c:49
No locals.
#18 0xb0dad67f in swfdec_movie_render (movie=0xa80adb0, cr=0xa83aa78, 
    color_transform=0xbfd44858, inval=0xbfd44838) at swfdec_movie.c:895
        child = (SwfdecMovie *) 0x0
        g = (GList *) 0x0
        walk = (GSList *) 0x0
        clip_depth = 1101404160
        trans = {ra = 256, rb = 0, ga = 256, gb = 0, ba = 256, bb = 0, 
  aa = 256, ab = 0}
---Type <return> to continue, or q <return> to quit---
        rect = {x0 = -786432, y0 = -1245184, x1 = 185335808, y1 = 65536}
        group = 0
        mask = (cairo_pattern_t *) 0x41a61800
        __PRETTY_FUNCTION__ = "swfdec_movie_render"
        matrix = {xx = 0.050000000000000003, yx = 0, xy = 0, 
  yy = 0.050000000000000003, x0 = 0, y0 = 0}
#19 0xb0dad767 in swfdec_movie_render (movie=0xa8099e8, cr=0xa83aa78, 
    color_transform=0xbfd44998, inval=0xbfd44978) at swfdec_movie.c:885
        child = (SwfdecMovie *) 0xa80adb0
        g = (GList *) 0xa825c20
        walk = <value optimized out>
        clip_depth = 0
        trans = {ra = 256, rb = 0, ga = 256, gb = 0, ba = 256, bb = 0, 
  aa = 256, ab = 0}
        rect = {x0 = -786432, y0 = -1245184, x1 = 185335808, y1 = 65536}
        group = 0
        mask = (cairo_pattern_t *) 0x0
        __PRETTY_FUNCTION__ = "swfdec_movie_render"
        matrix = {xx = 0.050000000000000003, yx = 0, xy = 0, 
  yy = 0.050000000000000003, x0 = 0, y0 = 0}
#20 0xb0dad767 in swfdec_movie_render (movie=0xa8097f0, cr=0xa83aa78, 
    color_transform=0xb0df3380, inval=0xbfd44a70) at swfdec_movie.c:885
        child = (SwfdecMovie *) 0xa8099e8
---Type <return> to continue, or q <return> to quit---
        g = (GList *) 0xa825b60
        walk = <value optimized out>
        clip_depth = 0
        trans = {ra = 256, rb = 0, ga = 256, gb = 0, ba = 256, bb = 0, 
  aa = 256, ab = 0}
        rect = {x0 = 6180, y0 = 4060, x1 = 9020, y1 = 4080}
        group = 0
        mask = (cairo_pattern_t *) 0x0
        __PRETTY_FUNCTION__ = "swfdec_movie_render"
        matrix = {xx = 0.050000000000000003, yx = 0, xy = 0, 
  yy = 0.050000000000000003, x0 = 0, y0 = 0}
#21 0xb0db949c in swfdec_player_render (player=0xa68c158, cr=0xa83aa78, x=309, 
    y=203, width=451, height=204) at swfdec_player.c:2249
        walk = (GList *) 0xa8049d0
        real = {x0 = 6180, y0 = 4060, x1 = 9020, y1 = 4080}
        trans = {ra = 256, rb = 0, ga = 256, gb = 0, ba = 256, bb = 0, 
  aa = 256, ab = 0}
        __PRETTY_FUNCTION__ = "swfdec_player_render"
#22 0xb177b1c6 in swfmoz_player_render (player=0x9b31b88, region=0xa839020)
    at swfmoz_player.c:610
        rect = {x = 426, y = 269, width = 142, height = 1}
        cr = (cairo_t *) 0xa83aa78
        __PRETTY_FUNCTION__ = "swfmoz_player_render"
---Type <return> to continue, or q <return> to quit---
#23 0xb177ba94 in swfmoz_player_idle_redraw (playerp=0x9b31b88)
    at swfmoz_player.c:157
        region = (GdkRegion *) 0xa839020
Comment 15 Carl Worth 2007-11-19 10:54:20 UTC
The above report of a duplicate (13293) and re-opnening of this bug is not useful.

*This* original bug was carefully disagnosed to be as described, (a crash when the line width is 0.0 and the line cap is round). It was first fixed in the 1.4.2 release and remains fixed, (as verified by the line-width-zero test in the test suite).

Benjamin and Riccardo, obviously you've found another bug, (that exists in 1.4.10). Let's please use a separate report for that. (And when you open it, please provide as minimal a test case as possible so that we can identify the conditions of the bug).

I'm marking this as fixed again, so I don't have to go re-read all of the history, and re-run the test just to discover that it's still working fine.

-Carl
Comment 16 Riccardo Magliocchetti 2008-02-04 11:16:35 UTC
*** Bug 14338 has been marked as a duplicate of this bug. ***

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.