mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-01-07 14:50:28 +01:00
[pattern] Report the true error status from getters.
As the getters actually return an error status, use it to report any pre-existing error status on the pattern.
This commit is contained in:
parent
496bbcf582
commit
a4b44ca89e
1 changed files with 18 additions and 0 deletions
|
|
@ -2597,6 +2597,9 @@ cairo_pattern_get_rgba (cairo_pattern_t *pattern,
|
|||
cairo_solid_pattern_t *solid = (cairo_solid_pattern_t*) pattern;
|
||||
double r0, g0, b0, a0;
|
||||
|
||||
if (pattern->status)
|
||||
return pattern->status;
|
||||
|
||||
if (pattern->type != CAIRO_PATTERN_TYPE_SOLID)
|
||||
return _cairo_error (CAIRO_STATUS_PATTERN_TYPE_MISMATCH);
|
||||
|
||||
|
|
@ -2635,6 +2638,9 @@ cairo_pattern_get_surface (cairo_pattern_t *pattern,
|
|||
{
|
||||
cairo_surface_pattern_t *spat = (cairo_surface_pattern_t*) pattern;
|
||||
|
||||
if (pattern->status)
|
||||
return pattern->status;
|
||||
|
||||
if (pattern->type != CAIRO_PATTERN_TYPE_SURFACE)
|
||||
return _cairo_error (CAIRO_STATUS_PATTERN_TYPE_MISMATCH);
|
||||
|
||||
|
|
@ -2673,6 +2679,9 @@ cairo_pattern_get_color_stop_rgba (cairo_pattern_t *pattern,
|
|||
{
|
||||
cairo_gradient_pattern_t *gradient = (cairo_gradient_pattern_t*) pattern;
|
||||
|
||||
if (pattern->status)
|
||||
return pattern->status;
|
||||
|
||||
if (pattern->type != CAIRO_PATTERN_TYPE_LINEAR &&
|
||||
pattern->type != CAIRO_PATTERN_TYPE_RADIAL)
|
||||
return _cairo_error (CAIRO_STATUS_PATTERN_TYPE_MISMATCH);
|
||||
|
|
@ -2714,6 +2723,9 @@ cairo_pattern_get_color_stop_count (cairo_pattern_t *pattern,
|
|||
{
|
||||
cairo_gradient_pattern_t *gradient = (cairo_gradient_pattern_t*) pattern;
|
||||
|
||||
if (pattern->status)
|
||||
return pattern->status;
|
||||
|
||||
if (pattern->type != CAIRO_PATTERN_TYPE_LINEAR &&
|
||||
pattern->type != CAIRO_PATTERN_TYPE_RADIAL)
|
||||
return _cairo_error (CAIRO_STATUS_PATTERN_TYPE_MISMATCH);
|
||||
|
|
@ -2747,6 +2759,9 @@ cairo_pattern_get_linear_points (cairo_pattern_t *pattern,
|
|||
{
|
||||
cairo_linear_pattern_t *linear = (cairo_linear_pattern_t*) pattern;
|
||||
|
||||
if (pattern->status)
|
||||
return pattern->status;
|
||||
|
||||
if (pattern->type != CAIRO_PATTERN_TYPE_LINEAR)
|
||||
return _cairo_error (CAIRO_STATUS_PATTERN_TYPE_MISMATCH);
|
||||
|
||||
|
|
@ -2788,6 +2803,9 @@ cairo_pattern_get_radial_circles (cairo_pattern_t *pattern,
|
|||
{
|
||||
cairo_radial_pattern_t *radial = (cairo_radial_pattern_t*) pattern;
|
||||
|
||||
if (pattern->status)
|
||||
return pattern->status;
|
||||
|
||||
if (pattern->type != CAIRO_PATTERN_TYPE_RADIAL)
|
||||
return _cairo_error (CAIRO_STATUS_PATTERN_TYPE_MISMATCH);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue