This is kinda an edge case, since almost all surfaces will need finish... in cairo-surface.c, line 333, there's an early return if finish is NULL. However, the check and call for flush is after that if. It should probably be moved before the early return so that flush is called even when finish is null.
Move bugs against "cvs" version to "0.9.3" so we can remove the "cvs" version.
Created attachment 5901 [details] [review] Proposed fix. Please review this patch, (also available in the 4186 branch of my personal tree), which I can push as soon as I get a double-check on its correctness. -Carl
Donno what cairo does in other cases, but in your patch it seems like if both flush and finish calls fail, the error status on the surface is set to the latter, not former.
Comment on attachment 5901 [details] [review] Proposed fix. looks ok to me other than what behdad said.
This had been fixed sometime ago, pre-1.4 if my memory serves correctly - though I'd forgotten about that during the recent triage sessions...
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.