<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.7600.16625"></HEAD>
<BODY>
<DIV>
<P>sorror, I made a mistake!<BR><BR></P>
<HR>
</DIV><STRONG>发件人:</STRONG><A title=okenjian@163.com 
href="mailto:okenjian@163.com">oken</A><BR><STRONG>发送日期:</STRONG>2010-09-30 
14:57<BR><STRONG>收件人:</STRONG><A title=cairo@cairographics.org 
href="mailto:cairo@cairographics.org">cairo@cairographics.org</A> 
<BR><STRONG>抄送:</STRONG><BR><STRONG>主题:</STRONG>[cairo] Is it an error in 
cairo-surface.c <BR>
<META name=GENERATOR content="MSHTML 8.00.7600.16625">
<P>VERISON:cairo 1.11.1<BR><BR>cairo_status_t<BR>_cairo_surface_fill_rectangles 
(cairo_surface_t&nbsp;&nbsp;*surface,<BR>&nbsp;&nbsp;&nbsp;&nbsp;cairo_operator_t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
op,<BR>&nbsp;&nbsp;&nbsp;&nbsp;const 
cairo_color_t&nbsp;*color,<BR>&nbsp;&nbsp;&nbsp;&nbsp;cairo_rectangle_int_t&nbsp;*rects,<BR>&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;&nbsp;&nbsp; 
num_rects)<BR>{<BR>&nbsp;&nbsp;&nbsp; cairo_int_status_t status;</P>
<P>&nbsp;&nbsp;&nbsp; if (surface-&gt;status)<BR>&nbsp;return 
surface-&gt;status;</P>
<P>&nbsp;&nbsp;&nbsp; assert (! surface-&gt;is_snapshot);</P>
<P>&nbsp;&nbsp;&nbsp; if (surface-&gt;finished)<BR>&nbsp;return 
_cairo_surface_set_error (surface,CAIRO_STATUS_SURFACE_FINISHED);</P>
<P>&nbsp;&nbsp;&nbsp; if (num_rects == 0)<BR>&nbsp;return 
CAIRO_STATUS_SUCCESS;</P>
<P>&nbsp;&nbsp;&nbsp; if (surface-&gt;backend-&gt;fill_rectangles) 
{<BR>&nbsp;status = surface-&gt;backend-&gt;fill_rectangles (surface, op, 
color,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rects, 
num_rects);<BR><FONT color=#ff0000>&nbsp;if (status != 
CAIRO_INT_STATUS_UNSUPPORTED)<BR>&nbsp;&nbsp;&nbsp;&nbsp; return 
_cairo_surface_set_error (surface, status);<BR></FONT>&nbsp;&nbsp;&nbsp; }</P>
<P>&nbsp;&nbsp;&nbsp; return _cairo_surface_set_error 
(surface,<BR>&nbsp;&nbsp;&nbsp;&nbsp; _cairo_surface_fallback_fill_rectangles 
(surface, op, 
color,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rects, 
num_rects));<BR>}<BR><BR>In my opinion,<BR><FONT color=#ff0000>&nbsp;if (status 
!= CAIRO_INT_STATUS_UNSUPPORTED)<BR>&nbsp;&nbsp;&nbsp;&nbsp; return 
_cairo_surface_set_error (surface, status);<BR>should be&nbsp;<BR>&nbsp;if 
(<FONT color=#0000ff size=4><STRONG>status &amp;&amp;</STRONG></FONT> status != 
CAIRO_INT_STATUS_UNSUPPORTED)<BR>&nbsp;&nbsp;&nbsp;&nbsp; return 
_cairo_surface_set_error (surface, status);</FONT></P><BR></BODY></HTML>