<html>
<head>
<base href="https://bugs.freedesktop.org/">
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - CAIRO_STATUS_NO_MEMORY after filling with pattern and large translation"
href="https://bugs.freedesktop.org/show_bug.cgi?id=102966#c4">Comment # 4</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - CAIRO_STATUS_NO_MEMORY after filling with pattern and large translation"
href="https://bugs.freedesktop.org/show_bug.cgi?id=102966">bug 102966</a>
from <span class="vcard"><a class="email" href="mailto:jason@inspiresomeone.us" title="Jason Crain <jason@inspiresomeone.us>"> <span class="fn">Jason Crain</span></a>
</span></b>
<pre>Created <span class=""><a href="attachment.cgi?id=134687" name="attach_134687" title="test-100868.c">attachment 134687</a> <a href="attachment.cgi?id=134687&action=edit" title="test-100868.c">[details]</a></span>
test-100868.c
The PDF in <a class="bz_bug_link
bz_status_RESOLVED bz_closed"
title="RESOLVED DUPLICATE - Fails to render: Internal Error: cairo context error: out of memory<0a>"
href="show_bug.cgi?id=100868">bug #100868</a> is the same. It's also doing a pattern fill under
different, but still odd coordinates, making cairo have an invalid matrix and
out of memory error. Backtrace is similar.
<span class="quote">> (gdb) b _cairo_error
> Breakpoint 2 at 0x7ffff7a897b2: file cairo-error.c, line 68.
> (gdb) run
> Starting program: /home/jason/100868/test
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
>
> Breakpoint 2, _cairo_error (status=CAIRO_STATUS_INVALID_MATRIX) at cairo-error.c:68
> 68 assert (_cairo_status_is_error (status));
> (gdb) bt
> #0 _cairo_error (status=CAIRO_STATUS_INVALID_MATRIX) at cairo-error.c:68
> #1 0x00007ffff7aa434c in _cairo_matrix_to_pixman_matrix (matrix=0x7fffffffb7f0, pixman_transform=0x7fffffffb8c0, xc=818.5, yc=1123) at cairo-matrix.c:996
> #2 0x00007ffff7aa4b63 in _cairo_matrix_to_pixman_matrix_offset (matrix=0x7fffffffd4c0, filter=CAIRO_FILTER_GOOD, xc=818.5, yc=1123, out_transform=0x7fffffffb8c0, x_offset=0x7fffffffbb70, y_offset=0x7fffffffbb74)
> at cairo-matrix.c:1210
> #3 0x00007ffff7a9d628 in _pixman_image_set_properties (pixman_image=0x55555575ed50, pattern=0x7fffffffd480, extents=0x7fffffffd43c, ix=0x7fffffffbb70, iy=0x7fffffffbb74) at cairo-image-source.c:900
> #4 0x00007ffff7a9e821 in _pixman_image_for_surface (dst=0x55555575a920, pattern=0x7fffffffd480, is_mask=0, extents=0x7fffffffd43c, sample=0x7fffffffd460, ix=0x7fffffffbb70, iy=0x7fffffffbb74) at cairo-image-source.c:1424
> #5 0x00007ffff7a9ec12 in _pixman_image_for_pattern (dst=0x55555575a920, pattern=0x7fffffffd480, is_mask=0, extents=0x7fffffffd43c, sample=0x7fffffffd460, tx=0x7fffffffbb70, ty=0x7fffffffbb74) at cairo-image-source.c:1557
> #6 0x00007ffff7a9a36e in inplace_renderer_init (r=0x7fffffffbb20, composite=0x7fffffffd400, antialias=CAIRO_ANTIALIAS_DEFAULT, needs_clip=0) at cairo-image-compositor.c:2904
> #7 0x00007ffff7a9a550 in span_renderer_init (_r=0x7fffffffbb20, composite=0x7fffffffd400, antialias=CAIRO_ANTIALIAS_DEFAULT, needs_clip=0) at cairo-image-compositor.c:2966
> #8 0x00007ffff7aec547 in composite_polygon (compositor=0x7ffff7dd7920 <spans>, extents=0x7fffffffd400, polygon=0x7fffffffcfb0, fill_rule=CAIRO_FILL_RULE_WINDING, antialias=CAIRO_ANTIALIAS_DEFAULT)
> at cairo-spans-compositor.c:798
> #9 0x00007ffff7aecb0a in clip_and_composite_polygon (compositor=0x7ffff7dd7920 <spans>, extents=0x7fffffffd400, polygon=0x7fffffffcfb0, fill_rule=CAIRO_FILL_RULE_WINDING, antialias=CAIRO_ANTIALIAS_DEFAULT)
> at cairo-spans-compositor.c:967
> #10 0x00007ffff7aed2d7 in _cairo_spans_compositor_fill (_compositor=0x7ffff7dd7920 <spans>, extents=0x7fffffffd400, path=0x55555575ae18, fill_rule=CAIRO_FILL_RULE_WINDING, tolerance=0.10000000000000001,
> antialias=CAIRO_ANTIALIAS_DEFAULT) at cairo-spans-compositor.c:1174
> #11 0x00007ffff7a83cba in _cairo_compositor_fill (compositor=0x7ffff7dd7920 <spans>, surface=0x55555575a920, op=CAIRO_OPERATOR_OVER, source=0x7fffffffd7f0, path=0x55555575ae18, fill_rule=CAIRO_FILL_RULE_WINDING,
> tolerance=0.10000000000000001, antialias=CAIRO_ANTIALIAS_DEFAULT, clip=0x0) at cairo-compositor.c:203
> #12 0x00007ffff7aa03f8 in _cairo_image_surface_fill (abstract_surface=0x55555575a920, op=CAIRO_OPERATOR_OVER, source=0x7fffffffd7f0, path=0x55555575ae18, fill_rule=CAIRO_FILL_RULE_WINDING, tolerance=0.10000000000000001,
> antialias=CAIRO_ANTIALIAS_DEFAULT, clip=0x0) at cairo-image-surface.c:987
> #13 0x00007ffff7af32c4 in _cairo_surface_fill (surface=0x55555575a920, op=CAIRO_OPERATOR_OVER, source=0x7fffffffd7f0, path=0x55555575ae18, fill_rule=CAIRO_FILL_RULE_WINDING, tolerance=0.10000000000000001,
> antialias=CAIRO_ANTIALIAS_DEFAULT, clip=0x0) at cairo-surface.c:2343
> #14 0x00007ffff7a90ce7 in _cairo_gstate_fill (gstate=0x55555575aae0, path=0x55555575ae18) at cairo-gstate.c:1318
> #15 0x00007ffff7a88538 in _cairo_default_context_fill (abstract_cr=0x55555575aab0) at cairo-default-context.c:1055
> #16 0x00007ffff7a7b01f in cairo_fill (cr=0x55555575aab0) at cairo.c:2424
> #17 0x0000555555554bdc in main (argc=1, argv=0x7fffffffdb58) at test.c:20
> (gdb) c
> Continuing.
>
> Breakpoint 2, _cairo_error (status=CAIRO_STATUS_NO_MEMORY) at cairo-error.c:68
> 68 assert (_cairo_status_is_error (status));
> (gdb) bt
> #0 _cairo_error (status=CAIRO_STATUS_NO_MEMORY) at cairo-error.c:68
> #1 0x00007ffff7a9a394 in inplace_renderer_init (r=0x7fffffffbb20, composite=0x7fffffffd400, antialias=CAIRO_ANTIALIAS_DEFAULT, needs_clip=0) at cairo-image-compositor.c:2909
> #2 0x00007ffff7a9a550 in span_renderer_init (_r=0x7fffffffbb20, composite=0x7fffffffd400, antialias=CAIRO_ANTIALIAS_DEFAULT, needs_clip=0) at cairo-image-compositor.c:2966
> #3 0x00007ffff7aec547 in composite_polygon (compositor=0x7ffff7dd7920 <spans>, extents=0x7fffffffd400, polygon=0x7fffffffcfb0, fill_rule=CAIRO_FILL_RULE_WINDING, antialias=CAIRO_ANTIALIAS_DEFAULT)
> at cairo-spans-compositor.c:798
> #4 0x00007ffff7aecb0a in clip_and_composite_polygon (compositor=0x7ffff7dd7920 <spans>, extents=0x7fffffffd400, polygon=0x7fffffffcfb0, fill_rule=CAIRO_FILL_RULE_WINDING, antialias=CAIRO_ANTIALIAS_DEFAULT)
> at cairo-spans-compositor.c:967
> #5 0x00007ffff7aed2d7 in _cairo_spans_compositor_fill (_compositor=0x7ffff7dd7920 <spans>, extents=0x7fffffffd400, path=0x55555575ae18, fill_rule=CAIRO_FILL_RULE_WINDING, tolerance=0.10000000000000001,
> antialias=CAIRO_ANTIALIAS_DEFAULT) at cairo-spans-compositor.c:1174
> #6 0x00007ffff7a83cba in _cairo_compositor_fill (compositor=0x7ffff7dd7920 <spans>, surface=0x55555575a920, op=CAIRO_OPERATOR_OVER, source=0x7fffffffd7f0, path=0x55555575ae18, fill_rule=CAIRO_FILL_RULE_WINDING,
> tolerance=0.10000000000000001, antialias=CAIRO_ANTIALIAS_DEFAULT, clip=0x0) at cairo-compositor.c:203
> #7 0x00007ffff7aa03f8 in _cairo_image_surface_fill (abstract_surface=0x55555575a920, op=CAIRO_OPERATOR_OVER, source=0x7fffffffd7f0, path=0x55555575ae18, fill_rule=CAIRO_FILL_RULE_WINDING, tolerance=0.10000000000000001,
> antialias=CAIRO_ANTIALIAS_DEFAULT, clip=0x0) at cairo-image-surface.c:987
> #8 0x00007ffff7af32c4 in _cairo_surface_fill (surface=0x55555575a920, op=CAIRO_OPERATOR_OVER, source=0x7fffffffd7f0, path=0x55555575ae18, fill_rule=CAIRO_FILL_RULE_WINDING, tolerance=0.10000000000000001,
> antialias=CAIRO_ANTIALIAS_DEFAULT, clip=0x0) at cairo-surface.c:2343
> #9 0x00007ffff7a90ce7 in _cairo_gstate_fill (gstate=0x55555575aae0, path=0x55555575ae18) at cairo-gstate.c:1318
> #10 0x00007ffff7a88538 in _cairo_default_context_fill (abstract_cr=0x55555575aab0) at cairo-default-context.c:1055
> #11 0x00007ffff7a7b01f in cairo_fill (cr=0x55555575aab0) at cairo.c:2424
> #12 0x0000555555554bdc in main (argc=1, argv=0x7fffffffdb58) at test.c:20
> (gdb) c
> Continuing.
>
> Breakpoint 2, _cairo_error (status=CAIRO_STATUS_NO_MEMORY) at cairo-error.c:68
> 68 assert (_cairo_status_is_error (status));
> (gdb) bt
> #0 _cairo_error (status=CAIRO_STATUS_NO_MEMORY) at cairo-error.c:68
> #1 0x00007ffff7af035a in _cairo_surface_set_error (surface=0x55555575a920, status=CAIRO_INT_STATUS_NO_MEMORY) at cairo-surface.c:201
> #2 0x00007ffff7af3301 in _cairo_surface_fill (surface=0x55555575a920, op=CAIRO_OPERATOR_OVER, source=0x7fffffffd7f0, path=0x55555575ae18, fill_rule=CAIRO_FILL_RULE_WINDING, tolerance=0.10000000000000001,
> antialias=CAIRO_ANTIALIAS_DEFAULT, clip=0x0) at cairo-surface.c:2352
> #3 0x00007ffff7a90ce7 in _cairo_gstate_fill (gstate=0x55555575aae0, path=0x55555575ae18) at cairo-gstate.c:1318
> #4 0x00007ffff7a88538 in _cairo_default_context_fill (abstract_cr=0x55555575aab0) at cairo-default-context.c:1055
> #5 0x00007ffff7a7b01f in cairo_fill (cr=0x55555575aab0) at cairo.c:2424
> #6 0x0000555555554bdc in main (argc=1, argv=0x7fffffffdb58) at test.c:20
> (gdb) c
> Continuing.
>
> Breakpoint 2, _cairo_error (status=CAIRO_STATUS_NO_MEMORY) at cairo-error.c:68
> 68 assert (_cairo_status_is_error (status));
> (gdb) bt
> #0 _cairo_error (status=CAIRO_STATUS_NO_MEMORY) at cairo-error.c:68
> #1 0x00007ffff7a79786 in _cairo_set_error (cr=0x55555575aab0, status=CAIRO_STATUS_NO_MEMORY) at cairo.c:401
> #2 0x00007ffff7a7b039 in cairo_fill (cr=0x55555575aab0) at cairo.c:2426
> #3 0x0000555555554bdc in main (argc=1, argv=0x7fffffffdb58) at test.c:20
> (gdb) c
> Continuing.
>
> Breakpoint 2, _cairo_error (status=CAIRO_STATUS_NO_MEMORY) at cairo-error.c:68
> 68 assert (_cairo_status_is_error (status));
> (gdb) bt
> #0 _cairo_error (status=CAIRO_STATUS_NO_MEMORY) at cairo-error.c:68
> #1 0x00007ffff7a797b4 in _cairo_set_error (cr=0x55555575aab0, status=CAIRO_STATUS_NO_MEMORY) at cairo.c:401
> #2 0x00007ffff7a7b039 in cairo_fill (cr=0x55555575aab0) at cairo.c:2426
> #3 0x0000555555554bdc in main (argc=1, argv=0x7fffffffdb58) at test.c:20
> (gdb) c
> Continuing.
> cairo_status: out of memory
> [Inferior 1 (process 15289) exited normally]</span ></pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the QA Contact for the bug.</li>
</ul>
</body>
</html>