summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@behdad.org>2008-05-09 13:23:02 +0200
committerBehdad Esfahbod <behdad@behdad.org>2008-05-09 15:54:12 +0200
commit440b339da793ba2f71f504328417aefc7d44ee7f (patch)
tree4ef8fd2b8f557eaac7ace265a3dcc36111e14fb4
parent25700f5cd052e5353c868ba0311ff53850e3f549 (diff)
downloadcairo-440b339da793ba2f71f504328417aefc7d44ee7f.tar.gz
[cairo-analysis-surface] Hold reference to target surface
-rw-r--r--src/cairo-analysis-surface.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/cairo-analysis-surface.c b/src/cairo-analysis-surface.c
index fbe581201..8f2569a16 100644
--- a/src/cairo-analysis-surface.c
+++ b/src/cairo-analysis-surface.c
@@ -238,6 +238,8 @@ _cairo_analysis_surface_finish (void *abstract_surface)
_cairo_region_fini (&surface->supported_region);
_cairo_region_fini (&surface->fallback_region);
+ cairo_surface_destroy (surface->target);
+
return CAIRO_STATUS_SUCCESS;
}
@@ -658,7 +660,7 @@ _cairo_analysis_surface_create (cairo_surface_t *target,
cairo_matrix_init_identity (&surface->ctm);
surface->has_ctm = FALSE;
- surface->target = target;
+ surface->target = cairo_surface_reference (target);
surface->first_op = TRUE;
surface->has_supported = FALSE;
surface->has_unsupported = FALSE;