Chris Wilson
1237eedff3
Check for error whilst trying to advance along a text string.
...
The text perf-case tries to fill the region with a single text string,
but fails to detect when the current point does not advance due to an
error. This causes the perf-case to enter an infinite loop, so we break
out when the cairo_status() has been set.
2007-04-09 16:13:16 -07:00
Chris Wilson
ea4945850a
Avoid using substituted surfaces for xlib operations.
...
Detect when a substitute image surface is returned for a solid pattern,
and avoid mixed image/xlib composite operations. This can happen for example
if there is a resource allocation failure during creating a similar surface.
2007-04-09 16:12:41 -07:00
Chris Wilson
751976970b
Handle failure to allocate a GC.
2007-04-09 16:11:22 -07:00
Chris Wilson
c6055dc349
Reset cairo_scaled_font_map after freeing.
...
Along the error path the global font map was freed but not reset,
causing segfaults on any subsequent use of a cairo_scaled_font_t.
2007-04-09 16:08:21 -07:00
Chris Wilson
65de47d8bc
cairo-bentley-ottmann - check init for failure
...
This was found during a cairo_static pass on an alternative branch...
Add the trivial error propagation for _cairo_bo_event_queue_init()
2007-04-09 16:08:00 -07:00
Chris Wilson
b4cb0306b4
cairo-type1-fallback - propagate error returns
...
Add status returns in order to propagate a matrix inversion failure
up through the call stack.
2007-04-09 16:06:51 -07:00
Chris Wilson
b29d78dda1
cairo-svg-surface - propagate some error returns
...
Add status returns to functions in order to propagate an error up
the call stack.
For the emit_*_pattern we add a new status return even when when
the functon return CAIRO_STATUS_SUCCESS unconditionally in order for
the caller to handle all cases in a consistent manner.
2007-04-09 16:05:30 -07:00
Chris Wilson
3f7ca6ef5b
cairo-pen - cairo_pen_init() can fail propagate its error.
...
Add status returns in order to propagate an intialisation failure
back up the call chain.
2007-04-09 15:51:31 -07:00
Chris Wilson
67f13b3518
cairo-bentley-ottmann/skip-list - catch and propagate out-of-memory errors
...
The skip list inserts could return NULL indicating an out-of-memory error.
In order to handle this, propagate the error up the call stack.
2007-04-09 15:12:15 +01:00
Chris Wilson
293122279f
cairo-path-stroke - add trivial missing status checks
...
Propagate the error status.
2007-04-09 15:11:47 +01:00
Chris Wilson
2f2bff038c
buffer-diff - check for any errors whilst writing the png
...
Propagate any errors from writing out the png.
2007-04-09 15:08:45 +01:00
Chris Wilson
79424fc646
cairo - add missing status checks
...
Add a few missing status checks and set the error on the context when
applicable.
2007-04-09 15:08:29 +01:00
Chris Wilson
a34a32fd99
cairo-type1-fallback - check for an error during cleanup
...
The cleanup path is shared between the error path and the true path, and
so any error along it can not be ignored.
2007-04-09 15:07:27 +01:00
Chris Wilson
d2efadc84d
cairo-svg-surface - propagate error returns
...
Add a couple of missing checks for error statues.
2007-04-09 15:07:10 +01:00
Chris Wilson
02264b40f5
cairo-surface-fallback - propagate error returns
...
_cairo_surface_composite() can fail so check for and error return and
propagate.
2007-04-09 15:06:49 +01:00
Chris Wilson
76b27fb0e8
cairo-ps-surface - add a couple of status checks
...
Handle a couple more error returns.
2007-04-09 15:06:25 +01:00
Chris Wilson
619425a8b3
cairo-polygon - trivial propagation of error status
...
_cairo_polygon_move_to() returns an error status so use it.
2007-04-09 15:06:11 +01:00
Chris Wilson
4b195779a4
cairo-pen - trivial propagation of error status
...
Add a couple of missing checks for error statuses and correct the
error path cleanup for _cairo_pen_stroke_spline().
2007-04-09 15:05:58 +01:00
Chris Wilson
66d3e25202
cairo-pdf-surface - propagate error status
...
Catch and propagate any error status.
2007-04-09 15:05:45 +01:00
Chris Wilson
b32a5b1dc6
cairo-pattern - propagate status
...
Catch, cleanup and propagate after an error return.
2007-04-09 15:05:35 +01:00
Chris Wilson
fd49bbb4b2
cairo-path - check for failure during _cairo_path_fixed_interpret
...
Catch an error return from _cairo_path_fixed_interpret() and return
it. Similary check for an error code in cairo_status() before returning
success.
2007-04-09 15:05:24 +01:00
Chris Wilson
814830f63b
cairo-path-fill - trivial missing unused result
...
Actually assign the result that is tested on the next line...
2007-04-09 15:05:13 +01:00
Chris Wilson
7ab1f62c60
cairo-paginated-surface - fix up the trivial unused result
...
Check for status returns and propagate, cleaning up as necessary.
2007-04-09 15:04:58 +01:00
Chris Wilson
78c0d62ba7
cairo-meta-surface - propagate trivial status return
...
_cairo_path_fixed_init_copy() could fail so propagate it's status.
2007-04-09 15:04:47 +01:00
Chris Wilson
75cc5e04d5
cairo-image-surface - propagate error returns from pixman.
...
pixman does occasionally return an error - in such circumstances we
should propagate it.
2007-04-09 15:04:30 +01:00
Chris Wilson
dee9a53029
cairo-gstate - fix the trivial unchecked returns
...
Check for an error return and propagate.
2007-04-09 15:04:17 +01:00
Chris Wilson
de264af2c6
cairo-ft-font - handle trivial failures
...
Catch the status return, cleanup and propagate the error.
2007-04-09 15:03:59 +01:00
Chris Wilson
14c8dfb0b9
cairo-clip - handle trivial pixman failures
...
Detect the simple cases when pixman returns an error, ie an OOM
condition, and propagate the error status.
2007-04-09 15:03:34 +01:00
Chris Wilson
274c20c27a
cairo-boilerplate - handle failure to set user data
...
After failing to set the user data on a surface, clean up and return NULL.
2007-04-09 15:02:17 +01:00
Chris Wilson
46eab95698
Add attribute(warn_unused_result)
...
This adds a compiler check that the function result is used by the caller
and enables it by default for all cairo_private functions and for public
API that returns a cairo_status_t.
It has been discussed that to extend the warnings to all functions, a
new function type could been introduced to cover static functions:
cairo_static. This has not been done at the present time in order to
minimise the churn and focus on the more common errors.
In order to reduce the warning spew generated by gcc for invalid use of
this attribute, -Wno-attributes is added to CFLAGS. This has the
unfortunate side-effect of masking future warnings for all attributes -
be warned!
2007-04-09 15:01:58 +01:00
Behdad Esfahbod
9da86e4a38
Add references to the skiplist paper
2007-04-08 22:56:30 -04:00
Behdad Esfahbod
ad0e13805c
[cairo-skiplist] Clarify MAX_LEVEL in comment, and adjust accordingly
...
Reading the code, MAX_LEVEL is in fact what could have been named
MAX_NUM_LEVELS. That is, it is maximum possible level plus one.
All code is correct: it uses MAX_LEVEL as array size and never produces
a level of MAX_LEVEL. The comment is fixed.
2007-04-08 22:51:10 -04:00
Behdad Esfahbod
e8072e6e0a
[test,perf] Make them rebuild boilerplate when src is changed
2007-04-08 22:03:46 -04:00
Behdad Esfahbod
6f93092217
Rename pixman_region_uninit to pixman_region_fini
2007-04-08 22:03:38 -04:00
Behdad Esfahbod
4f8a04b1c9
[pixman-image] Simply initialization given that there is no clip
2007-04-08 21:55:45 -04:00
Mathias Hasselmann
df9ea31df5
[pixman-region] Separate pixman_region_init
...
Most of the time pixman_region_init is called without any extents, and
followed by a pixman_region_union_rect, used to used to initialize
rectangular regions. pixman_region_union_rect is not that cheap, but
the sequence is called quite often. So it should be worth introducing
a specialized and fast function for this sequence.
This introduces pixman_region_init_rect. This new function makes
_cairo_region_init_from_rectangle obsolete.
Also removes the extent argument from pixman_region_init as it was
called with NULL most of the time. A pixman_region_init_with_extents
is added for the general case.
2007-04-08 21:49:46 -04:00
Mathias Hasselmann
9436959a83
Update function map
2007-04-08 21:36:34 -04:00
Mathias Hasselmann
99f4bfada8
Remove abdoned pixman_region_{create,destroy}
2007-04-08 21:36:06 -04:00
Mathias Hasselmann
4532c023e0
Make clientClip region static, remove abdoned CT_PIXMAP code paths
2007-04-08 21:35:58 -04:00
Mathias Hasselmann
65f269f3a4
Avoid pixman_region_create in pixman_composite{,General}
2007-04-08 21:34:10 -04:00
Mathias Hasselmann
82cc451148
Make clip regions of pixman_image_t static
2007-04-08 21:32:52 -04:00
Mathias Hasselmann
0413715337
Avoid pixman_region_create in pixman_color_rects
2007-04-08 21:27:34 -04:00
Mathias Hasselmann
5a6ca4794b
Replace pixman_region_create_simple by pixman_region_init
2007-04-08 21:25:25 -04:00
Mathias Hasselmann
f9057f2752
Avoid pixman_create_region in glitz-surface
2007-04-08 21:24:35 -04:00
Mathias Hasselmann
82cbb6886c
Remove redundant _cairo_clip_fini function
2007-04-08 21:23:47 -04:00
Mathias Hasselmann
5ae309c456
Avoid pixman_region_create in _cairo_traps_extract_region
2007-04-08 21:23:13 -04:00
Mathias Hasselmann
241482b550
Avoid malloc in _cairo_region_create_from_rectangle
2007-04-08 21:12:02 -04:00
Mathias Hasselmann
efc9775149
Make sure clip->region is always initialized
2007-04-08 21:10:58 -04:00
Mathias Hasselmann
0e7df34e07
Make region of cairo_clip_t static
2007-04-08 21:10:12 -04:00
Mathias Hasselmann
ced7b4a4ab
Make pixman_region_{init,uninit} public
2007-04-08 20:38:32 -04:00