summaryrefslogtreecommitdiff
path: root/src/cairo-script-surface.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cairo-script-surface.c')
-rw-r--r--src/cairo-script-surface.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/cairo-script-surface.c b/src/cairo-script-surface.c
index 6b6d8ffff..15d1ab055 100644
--- a/src/cairo-script-surface.c
+++ b/src/cairo-script-surface.c
@@ -1934,9 +1934,8 @@ _cairo_script_surface_clipper_intersect_clip_path (cairo_surface_clipper_t *clip
static void
active (cairo_script_surface_t *surface)
{
- assert (surface->active == FALSE);
- surface->active = TRUE;
- surface->ctx->active++;
+ if (surface->active++ == 0)
+ surface->ctx->active++;
}
static void
@@ -1945,10 +1944,10 @@ inactive (cairo_script_surface_t *surface)
cairo_script_context_t *ctx = surface->ctx;
cairo_list_t sorted;
- assert (surface->active == TRUE);
- surface->active = FALSE;
+ if (--surface->active)
+ return;
- if (--ctx->active > 0)
+ if (--ctx->active)
return;
cairo_list_init (&sorted);