churn
Rename cairo_path_nil to _cairo_path_nil since it may be exported, and tag it cairo_private to try to avoid exporting it. Qualify it as const well.
Track new name of _cairo_path_nil and cast away the const as required.
_cairo_path_data_create_in_error _cairo_pattern_create_in_error _cairo_surface_create_in_error
Don't bother with extra check of other->status to anticipate and try to prevent cairo_surface_create_similar from returning through cairo_surface_create_in_error.
Just return &_cairo_surface|pattern|path_nil rather than _cairo_surface|pattern|path_create_in_error.
After checking surface->status from a cairo_<foo>_surface_create function, just return CAIRO_STATUS_NO_MEMORY since that's the only error we'll get from one of these create functions.
Remove unnecessary check for gstate == NULL;
Fix old check for image == NULL instead of image->base.status.
Add missing check of surface->image_base.status after creating surface->image.
Add missing check of surface->base.status after creating surface.
Change functions to return type of void:
cairo_scaled_font_extents cairo_surface_finish
Add new functions to query object status:
cairo_scaled_font_status cairo_surface_status
Implementation of new error handling scheme for cairo_surface_t and cairo_scaled_font_t.
Track change in return value of cairo_surface_finish.
Add a status field to cairo_path_t.
Add documentation for the new approach for handling errors in these functions---always returning a valid pointer with at least a status. (cairo_append_path): Propagate path status errors to the context. Add note to documentation on initializing path->status.
Add missing cairo_private qualifier to a couple functions.
Track new status field in cairo_path_t. (cairo_path_destroy): Don't destroy cairo_path_nil. Add documentation. (_cairo_path_data_create): (_cairo_path_data_create_flat): (_cairo_path_data_append_to_context): Add documentation. (_cairo_path_data_create_in_error): New function to create a placeholder cairo_path_t just to propagate a cairo_status_t error.
Add cairo_stroke_preserve, cairo_fill_preserve, and cairo_clip_preserve.
Rip the path out of cairo_gstate_t.
Add path to cairo_t.
Bring in most of the path code that used to live in cairo-gstate.c
Move arc generation code into its own file.
Accept path+ctm_inverse+tolerance instead of gstate. Absorb flattening and device space->user space conversion that used to be in _cairo_gstate_intepret_path.
Prefer cairo_fixed_t parameters over ciaro_point_t for cross-file interfaces.
Track changes in _cairo_path_fixed interfaces.
Port to use cairo_fill_preserve rather than cairo_save/cairo_restore which no longer work for saving the path.
Remove get and set of current point since it is no longer affected by cairo_save and cairo_restore. Add get and set testing for cairo_matrix_t.
Add new cairo_path_t, containing a cairo_path_data_t array and an explicit length. Remove CAIRO_PATH_END_PATH terminator from cairo_path_data_t.
Rename the internal path object from cairo_path_t to cairo_path_real_t.
New functions: cairo_copy_path_data, cairo_copy_path_data_flat, and cairo_append_path_data.
Add new implementation for cairo_copy_path_data and cairo_append_path_data.
New test for new path_data functions.