[cairo-surface] Do not err on CAIRO_EXTEND_PAD and CAIRO_EXTEND_REFLECT

for surface patterns.

Right before releasing cairo 1.2, Carl and I decided to return error on
CAIRO_EXTEND_PAD and CAIRO_EXTEND_REFLECT for surface patterns, as they
are not implemented and one was causing crashes.  Well, that was probably
the worst decision we could make (other than ignoring the problem).  A
much better decision would have been to make them act like
CAIRO_EXTEND_NONE and CAIRO_EXTEND_REPEAT respectively.  Anyway, remove
the error paths.
This commit is contained in:
Behdad Esfahbod 2007-02-21 18:03:52 -05:00
parent a57bc6b697
commit 4e30919f30

View file

@ -1267,12 +1267,6 @@ _cairo_surface_paint (cairo_surface_t *surface,
assert (! surface->is_snapshot);
if (source->type == CAIRO_PATTERN_TYPE_SURFACE &&
(source->extend == CAIRO_EXTEND_REFLECT || source->extend == CAIRO_EXTEND_PAD))
{
return CAIRO_STATUS_NO_MEMORY;
}
_cairo_surface_copy_pattern_for_destination (source, surface, &dev_source.base);
if (surface->backend->paint) {
@ -1301,12 +1295,6 @@ _cairo_surface_mask (cairo_surface_t *surface,
assert (! surface->is_snapshot);
if (source->type == CAIRO_PATTERN_TYPE_SURFACE &&
(source->extend == CAIRO_EXTEND_REFLECT || source->extend == CAIRO_EXTEND_PAD))
{
return CAIRO_STATUS_NO_MEMORY;
}
_cairo_surface_copy_pattern_for_destination (source, surface, &dev_source.base);
_cairo_surface_copy_pattern_for_destination (mask, surface, &dev_mask.base);
@ -1345,12 +1333,6 @@ _cairo_surface_stroke (cairo_surface_t *surface,
assert (! surface->is_snapshot);
if (source->type == CAIRO_PATTERN_TYPE_SURFACE &&
(source->extend == CAIRO_EXTEND_REFLECT || source->extend == CAIRO_EXTEND_PAD))
{
return CAIRO_STATUS_NO_MEMORY;
}
_cairo_surface_copy_pattern_for_destination (source, surface, &dev_source.base);
if (surface->backend->stroke) {
@ -1390,12 +1372,6 @@ _cairo_surface_fill (cairo_surface_t *surface,
assert (! surface->is_snapshot);
if (source->type == CAIRO_PATTERN_TYPE_SURFACE &&
(source->extend == CAIRO_EXTEND_REFLECT || source->extend == CAIRO_EXTEND_PAD))
{
return CAIRO_STATUS_NO_MEMORY;
}
_cairo_surface_copy_pattern_for_destination (source, surface, &dev_source.base);
if (surface->backend->fill) {
@ -1797,12 +1773,6 @@ _cairo_surface_show_glyphs (cairo_surface_t *surface,
assert (! surface->is_snapshot);
if (source->type == CAIRO_PATTERN_TYPE_SURFACE &&
(source->extend == CAIRO_EXTEND_REFLECT || source->extend == CAIRO_EXTEND_PAD))
{
return CAIRO_STATUS_NO_MEMORY;
}
if (!num_glyphs)
return CAIRO_STATUS_SUCCESS;