Adrian Johnson
fe97e815e8
Fix TrueType subsetting bug
...
Fix incorrect counting of arguments in composite glyphs
2009-04-05 01:09:32 +10:30
Adrian Johnson
9b496af5c2
Fix buffer size check in TrueType subsetting
...
Andrew Cowie reported a problem with the Charis SIL font being
embedded as a fallback font.
The buffer size check for composite glyphs was incorrect causing the
subsetting to fail for some fonts.
2009-04-05 00:44:02 +10:30
Jeff Muizelaar
ba2ec8e1d9
Remove trailing comma in cairo_region_overlap_t enum.
2009-04-01 13:29:12 -04:00
Jeff Muizelaar
2d6336624c
[test-win32] Fix static linking of the test suite.
...
Previously, the test suite needed to be dynamically linked to work.
2009-04-01 11:32:58 -04:00
Søren Sandmann Pedersen
0f21893b05
[region] pixman_region32_contains_point() does not allow NULL for box
2009-04-01 08:56:10 -04:00
Chris Wilson
e46c1d7fa3
[scaled-font-subset] Cleanup after failure to convert to utf16.
...
Avoid leaking the local hashtable and strings after failing to convert the
string to utf16.
2009-03-31 12:16:03 +01:00
Chris Wilson
180b964aac
[scaled-font-subset] Propagate error from scaled-font to collection.
...
Don't attempt to collect the sub_font if it is in error.
2009-03-31 12:16:02 +01:00
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
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