diff --git a/src/cairo-svg-surface-private.h b/src/cairo-svg-surface-private.h index a6e4ea943..e2a194081 100644 --- a/src/cairo-svg-surface-private.h +++ b/src/cairo-svg-surface-private.h @@ -41,10 +41,23 @@ #ifndef CAIRO_SVG_SURFACE_PRIVATE_H #define CAIRO_SVG_SURFACE_PRIVATE_H -#include +#include "cairo-svg.h" -void +#include "cairo-surface-private.h" + +struct _cairo_svg_surface_start { + cairo_surface_t base; + + cairo_bool_t force_fallbacks; +}; + +static inline void _cairo_svg_surface_set_force_fallbacks (void *abstract_surface, - cairo_bool_t force_fallbacks); + cairo_bool_t force_fallbacks) +{ + struct _cairo_svg_surface_start *surface = (struct _cairo_svg_surface_start *) abstract_surface; + + surface->force_fallbacks = force_fallbacks; +} #endif /* CAIRO_SVG_SURFACE_PRIVATE_H */ diff --git a/src/cairo-svg-surface.c b/src/cairo-svg-surface.c index d45a6201a..594d5a1a2 100644 --- a/src/cairo-svg-surface.c +++ b/src/cairo-svg-surface.c @@ -77,7 +77,7 @@ * Since: 1.2 **/ -static const int invalid_pattern_id = -1; +static const unsigned int invalid_pattern_id = -1; static const cairo_svg_version_t _cairo_svg_versions[] = { @@ -209,9 +209,12 @@ typedef struct _cairo_svg_document { cairo_hash_table_t *paints; } cairo_svg_document_t; +// Must be compatible with the struct _cairo_svg_surface_start. typedef struct _cairo_svg_surface { cairo_surface_t base; + cairo_bool_t force_fallbacks; + unsigned int source_id; unsigned int depth; @@ -236,8 +239,6 @@ typedef struct _cairo_svg_surface { cairo_bool_t transitive_paint_used; cairo_paginated_mode_t paginated_mode; - - cairo_bool_t force_fallbacks; } cairo_svg_surface_t; static cairo_status_t @@ -419,15 +420,6 @@ _extract_svg_surface (cairo_surface_t *surface, return TRUE; } -void -_cairo_svg_surface_set_force_fallbacks (void *abstract_surface, - cairo_bool_t force_fallbacks) -{ - cairo_svg_surface_t *surface = (cairo_svg_surface_t *) abstract_surface; - - surface->force_fallbacks = force_fallbacks; -} - /** * cairo_svg_surface_restrict_to_version: * @surface: a SVG #cairo_surface_t @@ -1397,7 +1389,7 @@ _cairo_svg_surface_finish (void *abstract_surface) return status; } -static char * +static const char * _cairo_svg_surface_emit_static_filter (cairo_svg_document_t *document, enum cairo_svg_filter filter) { if (!document->filters_emitted[filter]) {