<html>
<head>
<base href="https://bugs.freedesktop.org/">
</head>
<body><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> changed
<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>
<br>
<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>What</th>
<th>Removed</th>
<th>Added</th>
</tr>
<tr>
<td style="text-align:right;">QA Contact</td>
<td>
</td>
<td>cairo-bugs@cairographics.org
</td>
</tr>
<tr>
<td style="text-align:right;">Component</td>
<td>cairo backend
</td>
<td>general
</td>
</tr>
<tr>
<td style="text-align:right;">Assignee</td>
<td>poppler-bugs@lists.freedesktop.org
</td>
<td>chris@chris-wilson.co.uk
</td>
</tr>
<tr>
<td style="text-align:right;">Product</td>
<td>poppler
</td>
<td>cairo
</td>
</tr>
<tr>
<td style="text-align:right;">Summary</td>
<td>Internal Error: cairo context error: out of memory<0a>
</td>
<td>CAIRO_STATUS_NO_MEMORY after filling with pattern and large translation
</td>
</tr></table>
<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#c1">Comment # 1</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>This PDF is doing a pattern fill under odd coordinates. For some reason having
a large offset to the operation makes cairo have an out of memory error. It's
doing roughly this:
// create pattern
cairo_surface_t *surfacep = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
25, 25);
cairo_t *crp = cairo_create (surfacep);
cairo_set_source_rgb (crp, 0, 0, 0);
cairo_paint (crp);
cairo_pattern_t *pattern = cairo_pattern_create_for_surface (surfacep);
cairo_matrix_t mat = {2, 0, 0, 2, 0, 0};
cairo_pattern_set_matrix (pattern, &mat);
cairo_pattern_set_extend (pattern, CAIRO_EXTEND_REPEAT);
// draw pattern to surface
cairo_surface_t *surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
100, 100);
cairo_t *cr0 = cairo_create (surface);
cairo_translate (cr0, 0, -50000);
cairo_set_source (cr0, pattern);
cairo_rectangle (cr0, 0, 50000, 100, 100);
cairo_fill (cr0);
cairo_status_t status = cairo_status (cr0);
printf ("cairo_status: %s\n", cairo_status_to_string (status));</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>