<div>  cairo_stroke(cr);</div><div>  std::cout &lt;&lt; cairo_status(cr) &lt;&lt; std::endl;</div><div>  cairo_surface_finish(surface);</div><div>  std::cout &lt;&lt; cairo_status(cr) &lt;&lt; std::endl;</div><div>  cairo_surface_flush(surface);</div>
<div>  std::cout &lt;&lt; cairo_status(cr) &lt;&lt; std::endl;</div><div>  cairo_surface_destroy(surface);</div><div>  std::cout &lt;&lt; cairo_status(cr) &lt;&lt; std::endl;</div><div>  cairo_destroy(cr);</div><div>  std::cout &lt;&lt; cairo_status(cr) &lt;&lt; std::endl;</div>
<div><br></div><div>gives me:</div><div><br></div><div><div>0</div><div>0</div><div>0</div><div>0</div><div>0</div><div>0</div></div><div><br></div><div>And there is plenty of memory. I did an strace and i ran it in gdb and there are no errors. The pdf file is there without /Kids.</div>
<div><br></div><div><div>1 0 obj</div><div>&lt;&lt; /Type /Pages</div><div>   /Kids [ ]</div><div>   /Count 0</div><div>&gt;&gt;</div><div>endobj</div><div>2 0 obj</div><div>&lt;&lt; /Creator (cairo 1.8.10 (<a href="http://cairographics.org">http://cairographics.org</a>))</div>
<div>   /Producer (cairo 1.8.10 (<a href="http://cairographics.org">http://cairographics.org</a>))</div><div>&gt;&gt;</div></div><div><br></div><div class="gmail_quote">On Mon, Aug 30, 2010 at 12:18 PM, Andrea Canciani <span dir="ltr">&lt;<a href="mailto:ranma42@gmail.com">ranma42@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="im">On Mon, Aug 30, 2010 at 12:04 PM, Arjen Nienhuis &lt;<a href="mailto:a.g.nienhuis@gmail.com">a.g.nienhuis@gmail.com</a>&gt; wrote:<br>

&gt; Hi,<br>
&gt; If you stroke each line you need (on my system) 500 bytes per line. That<br>
&gt; would be 10GB RAM. I don&#39;t have that. You can use swap (and you need 64<br>
&gt; bits), but it will be very slow.<br>
&gt; If you try to create a path with 20 milion subpaths, cairo will fail<br>
&gt; silently(!!!) which I think is a bug.<br>
</div>It doesn&#39;t fail silently. Check the status of cr after cairo_stroke.<br>
It will say that<br>
you don&#39;t have enough memory (CAIRO_STATUS_NO_MEMORY).<br>
You might also want to check the status after finishing the surface<br>
(before destroying it).<br>
<font color="#888888">Andrea<br>
</font></blockquote></div><br>