Chris Wilson
8362c6f726
[type1] Fixup error path during write_charstrings()
...
On the common error path we attempted to unlock a mutex that was not
always held, so reorder the error paths appropriately.
2009-03-31 12:16:02 +01:00
Chris Wilson
88956cd42e
[ps] Check for error during stroking.
...
Add a missing error status check that caused errors during stroke to be
masked.
2009-03-31 12:16:02 +01:00
Chris Wilson
043352aa8d
[pdf] Prevent leak of pad_image on error path.
...
Ensure that the local pad_image is destroyed after an error.
2009-03-31 12:16:02 +01:00
Chris Wilson
b0689f5611
Check for errors during get_mime_data()
...
cairo_surface_get_mime_data() may raise an error on the surface, so we
need to check lest it goes unnoticed and we generate a corrupt file.
2009-03-31 12:16:02 +01:00
Chris Wilson
9f63cbb870
[pdf] Free compressed stream after error.
...
Ensure that the compressed stream is destroyed after encountering an
error.
2009-03-31 12:16:02 +01:00
Chris Wilson
ba1a0fa601
[truetype] Free local names on failure.
...
Ensure that all local allocations are freed on the error path.
2009-03-31 12:16:01 +01:00
Chris Wilson
edce97a750
[pdf] Remove false assertion.
...
The stream itself may be in an error state, so an error could be raised.
2009-03-31 12:16:01 +01:00
Chris Wilson
b580a4a8d6
[test] Improve fault injection coverage
...
In order to exercise the meta-surfaces, we need to inject faults into
cairo_surface_finish().
2009-03-31 12:16:01 +01:00
Søren Sandmann Pedersen
80d5b53b47
[region] Change name of cairo_region_empty() to cairo_region_is_empty()
2009-03-31 05:47:44 -04:00
Jonathan Kew
77ee65fd03
[win32] Fix horizontal glyph positioning bug
...
The _cairo_win32_scaled_font_backend version of show_glyphs collects
glyph runs to hand to ExtTextOutW until the y-offset changes, then flushes the
glyphs buffered so far. As each glyph is buffered, it also calculates and
buffers the dx value for the preceding glyph.
However, when it sees a change in dy and decides to flush, it should *not*
append an entry to the dx buffer, as this would be the "dx" of the previous
glyph, and instead the new start_x value will be used for the new glyph run
that's being collected. This bug means that after any vertically-offset glyph,
the remaining glyphs in the run will get incorrect dx values (horizontal
escapement).
Mozilla bug #475092
2009-03-30 14:45:48 -04:00
Chris Wilson
aee71e2063
[test] Memfault checks.
...
Don't assume an error means the test failed, check for injected allocation
errors.
2009-03-30 13:41:00 +01:00
Chris Wilson
ea6197c2f5
[surface] Propagate region allocation failure.
...
Propagate the error status from failing to allocate the region.
2009-03-30 10:54:26 +01:00
Chris Wilson
c35d226f7d
[traps] Propagate allocation failure.
...
Report failure to allocation region.
2009-03-30 10:46:37 +01:00
Chris Wilson
e238d10b30
[region] Use const cairo_rectangle_int_t consistently.
...
Add the const declaration to a couple of functions.
2009-03-30 10:23:30 +01:00
Chris Wilson
de1612bdd7
[region] Use _cairo_status_is_error
...
Replace the open-coded version with the more readable macro.
2009-03-30 10:17:49 +01:00
Chris Wilson
f027405429
[region] Add leading underscore to private _cairo_region_set_error()
...
Differentiate the private _cairo_region_set_error() function by using a
leading underscore.
2009-03-30 10:12:41 +01:00
Chris Wilson
ed7188a471
[region] Add slim_hidden_def.
...
Fixes for check-plt.sh (and a few adjacent whitespace).
2009-03-30 10:11:14 +01:00
Chris Wilson
f31c6548f8
Silence compiler warnings for CAIRO_STATUS_LAST_STATUS
...
Add ASSERT_NOT_REACHED (or similar) cases to the error handling switches
to silence the compiler.
2009-03-29 08:31:15 +01:00
Eric Anholt
979337dd4d
[gl] Wire blend factors using dst alpha to constants for CAIRO_CONTENT_COLOR.
...
This fixes the operator and operator-alpha tests to rgb24 destinations.
While we request an RGB texture, the returned texture has alpha bits, so when
we blend against it as a renderbuffer, we get the junk alpha values. Whether
or not this is a driver bug, we'll have this problem when we get visuals
with alpha bits for windows despite not requestiong alpha, so we have to
handle it in cairo.
2009-03-28 21:53:04 -07:00
Eric Anholt
809f7dc4c8
[gl] Make sure test visuals for CAIRO_CONTENT_COLOR_ALPHA have alpha bits.
...
Since we're just making FBOs, the visual chosen probably shouldn't matter,
and it doesn't on Intel. But it does seem like the right thing to do.
2009-03-28 21:48:42 -07:00
Eric Anholt
93c437d4b9
[gl] Use GLEW to detect required extension presence.
2009-03-28 21:00:49 -07:00
Søren Sandmann Pedersen
62d84847c3
[region] Add documentation for all the new region methods.
2009-03-28 18:02:58 -04:00
Søren Sandmann Pedersen
980e9f0dbd
[region] Fix status propagation for regions
...
When an operation fails, store the status code in the destination
region rather than leaving it unchanged.
2009-03-28 18:02:58 -04:00
Søren Sandmann Pedersen
64e490a464
[region] Use signed ints for width and height in cairo_rectangle_int_t
2009-03-28 18:02:58 -04:00
Søren Sandmann
26999e5aa8
[region] Add cairo_region_intersect_rectangle() and _subtract_rectangle()
...
Intersecting with and subtracting rectangles is quite common, and we
already have cairo_union_rectangle().
2009-03-28 18:02:58 -04:00
Søren Sandmann Pedersen
4b3245481c
[region] Expand rect to rectangle in a couple of names
...
Specifically,
cairo_region_union_rect -> cairo_region_union_rectangle
cairo_region_create_rect -> cairo_region_create_rectangle
Also delete cairo_region_clear() which is not that useful.
2009-03-28 18:02:57 -04:00
Søren Sandmann Pedersen
bf6d9bc175
[region] Delete cairo_region_create_rectangles()
...
It was only used in _cairo_traps_extract_region() which could be
simplified significantly by calling cairo_region_union_rect()
repeatedly instead.
2009-03-28 18:02:57 -04:00
Søren Sandmann
e6d82afcab
[region] Add slim_hidden_proto for region functions
2009-03-28 18:02:57 -04:00
Søren Sandmann
e29103c081
[region] Move region function prototypes to cairo.h along with helper types.
...
Move struct _cairo_region to cairoint.h and delete
cairo-region-private.h. Delete cairo_private from the function
definitions that had it.
2009-03-28 18:02:57 -04:00
Søren Sandmann
1cca5a1348
[region] Remove underscores from _cairo_region_*
2009-03-28 18:02:07 -04:00
Søren Sandmann
fcdca96694
[region] Always define cairo_rectangle_int_t with ints
...
Use ints in cairo_rectangle_int_t, no matter the fixed type.
2009-03-28 18:01:19 -04:00
Søren Sandmann
cfa7a384b7
[region] Add _cairo_region_contains_point()
2009-03-28 18:01:19 -04:00
Søren Sandmann Pedersen
15564d1949
[region] Add _cairo_region_union
2009-03-28 18:01:19 -04:00
Søren Sandmann Pedersen
df883aa937
[region] Add a cairo_region_overlap_t type
2009-03-28 18:01:19 -04:00
Søren Sandmann Pedersen
ebd0e685ae
[region] Consistently use rectangles in the API of regions
...
Usually, rectangles are more useful than boxes, so regions should only
expose rectangles in their public API.
Specifically,
_cairo_region_num_boxes becomes _cairo_region_num_rectangles
_cairo_region_get_box becomes _cairo_region_get_rectangle
Remove the cairo_box_int_t type
2009-03-28 18:01:19 -04:00
Søren Sandmann
c29aeee2d3
[region] Change sense of _cairo_region_not_empty() to _cairo_region_empty()
...
Having "not" in the name causes double negatives.
2009-03-28 18:01:19 -04:00
Søren Sandmann
c88321d0a2
[region] Miscellaneous bug fixes.
...
- Initialize region->status in _cairo_region_create_boxes()
- Make _cairo_region_copy() actually return a region.
- Fix a bug where a NULL region could be dereferenced
Also add an assertion that the result of cairo_region_copy() is never
NULL.
2009-03-28 18:01:19 -04:00
Søren Sandmann
93b285dc2c
[region] Get rid of clip->has_region
2009-03-28 18:01:19 -04:00
Søren Sandmann
e3e1b35eb9
[region] Make cairo_region_t a malloced object.
2009-03-28 17:58:48 -04:00
Søren Sandmann Pedersen
c2c637cf1d
Simplify _cairo_clip_intersect_region()
...
The intermediate intersection region is not necessary because if the
operation fails, clip->region will end up as a pixman error region.
2009-03-28 04:26:10 -04:00
Bertram Felgenhauer
fe10cd6467
[spline] fix wrong sign in _cairo_spline_bound.
2009-03-27 07:10:21 +01:00
Bertram Felgenhauer
53107de63a
[in_fill] Correctly track current point in curve_to.
...
When discarding a bezier path segment, we still need to update the
current point.
2009-03-26 04:56:27 +01:00
Chris Wilson
578b06a978
[perf] Use CAIRO_LDFLAGS
...
Use CAIRO_LDFLAGS in order to pull in additional link options, such as
--coverage.
2009-03-24 07:50:58 +00:00
Chris Wilson
ac30ced613
[test] Check for surface create failure.
...
If the image surface creation fails, the data pointer will be NULL leading
to a segfault -- so check!
2009-03-24 07:50:58 +00:00
Chris Wilson
b5a4a2c4b1
[test] Early test for memfault.
...
Check the error status within after each iteration in
solid-pattern-cache-stress.
2009-03-24 07:50:58 +00:00
Chris Wilson
1a7b94f934
[test] Check for errors during get-path-extents.
...
Need to check that an error was not raised on the context before checking
whether the extents match expectations.
2009-03-24 07:50:58 +00:00
Vladimir Vukicevic
3b54533088
[win32] Use _hypot instead of hypot
...
The hypot symbol is deprecated on Win32, and nonexistent on Windows CE
2009-03-21 11:56:18 -07:00
Stefan Klug
895fce1632
[wince] Use the official _WIN32_WCE define instead of WINCE
2009-03-20 17:20:22 -04:00
Jeff Muizelaar
86a935de42
[msvc] Fix definition of CAIRO_ENSURE_UNIQUE for non-x86
...
The current definition of CAIRO_ENSURE_UNIQUE uses x86 assembly so make sure we
only compile it when targeting x86.
2009-03-20 17:14:08 -04:00
Chris Wilson
c932a809d6
[test] Propagate allocation failure.
...
Check for memfaults during rel-path test.
2009-03-18 09:44:33 +00:00