summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBryce Harrington <b.harrington@samsung.com>2013-09-15 18:19:06 -0700
committernisanthmp <nisanth.mp@samsung.com>2015-06-12 12:23:33 +0530
commitb76b03fc782c0489d7b5c64305529a9ca47e5c4b (patch)
treeae7585b9f60d5fad6d04129fa2804a0e39b93346
parent242802531a39590e7fb419d5c734ee45a9266dde (diff)
downloadcairo-b76b03fc782c0489d7b5c64305529a9ca47e5c4b.tar.gz
cairo-b76b03fc782c0489d7b5c64305529a9ca47e5c4b.tar.bz2
cairo-b76b03fc782c0489d7b5c64305529a9ca47e5c4b.zip
shadow: Add a shadow cache destructor
Signed-off-by: Bryce Harrington <b.harrington@samsung.com>
-rw-r--r--src/cairo-surface-shadow.c32
1 files changed, 14 insertions, 18 deletions
diff --git a/src/cairo-surface-shadow.c b/src/cairo-surface-shadow.c
index b1494df8d..1b2cfd6b8 100644
--- a/src/cairo-surface-shadow.c
+++ b/src/cairo-surface-shadow.c
@@ -198,6 +198,14 @@ _cairo_shadow_cache_init (cairo_shadow_cache_t *shadow_cache,
shadow_cache->scale = scale;
}
+static void
+_cairo_shadow_cache_destroy (cairo_shadow_cache_t *shadow_cache)
+{
+ cairo_list_del (&shadow_cache->link);
+ cairo_surface_destroy (shadow_cache->surface);
+ free (shadow_cache);
+}
+
/* A collection of routines to draw shadow*/
cairo_status_t
@@ -448,10 +456,8 @@ _cairo_surface_shadow_paint (cairo_surface_t *target,
shadow_cache = cairo_list_last_entry (shadow_caches,
cairo_shadow_cache_t,
link);
- cairo_list_del (&shadow_cache->link);
- cairo_surface_destroy (shadow_cache->surface);
*shadow_caches_size -= shadow_cache->size;
- free (shadow_cache);
+ _cairo_shadow_cache_destroy (shadow_cache);
}
shadow_cache = malloc (sizeof (cairo_shadow_cache_t));
@@ -755,10 +761,8 @@ _cairo_surface_shadow_mask (cairo_surface_t *target,
shadow_cache = cairo_list_last_entry (shadow_caches,
cairo_shadow_cache_t,
link);
- cairo_list_del (&shadow_cache->link);
- cairo_surface_destroy (shadow_cache->surface);
*shadow_caches_size -= shadow_cache->size;
- free (shadow_cache);
+ _cairo_shadow_cache_destroy (shadow_cache);
}
shadow_cache = malloc (sizeof (cairo_shadow_cache_t));
@@ -1090,10 +1094,8 @@ _cairo_surface_inset_shadow_stroke (cairo_surface_t *target,
shadow_cache = cairo_list_last_entry (shadow_caches,
cairo_shadow_cache_t,
link);
- cairo_list_del (&shadow_cache->link);
- cairo_surface_destroy (shadow_cache->surface);
*shadow_caches_size -= shadow_cache->size;
- free (shadow_cache);
+ _cairo_shadow_cache_destroy (shadow_cache);
}
shadow_cache = malloc (sizeof (cairo_shadow_cache_t));
@@ -1425,10 +1427,8 @@ _cairo_surface_shadow_stroke (cairo_surface_t *target,
shadow_cache = cairo_list_last_entry (shadow_caches,
cairo_shadow_cache_t,
link);
- cairo_list_del (&shadow_cache->link);
- cairo_surface_destroy (shadow_cache->surface);
*shadow_caches_size -= shadow_cache->size;
- free (shadow_cache);
+ _cairo_shadow_cache_destroy (shadow_cache);
}
shadow_cache = malloc (sizeof (cairo_shadow_cache_t));
@@ -1754,10 +1754,8 @@ _cairo_surface_inset_shadow_fill (cairo_surface_t *target,
shadow_cache = cairo_list_last_entry (shadow_caches,
cairo_shadow_cache_t,
link);
- cairo_list_del (&shadow_cache->link);
- cairo_surface_destroy (shadow_cache->surface);
*shadow_caches_size -= shadow_cache->size;
- free (shadow_cache);
+ _cairo_shadow_cache_destroy (shadow_cache);
}
shadow_cache = malloc (sizeof (cairo_shadow_cache_t));
@@ -2080,10 +2078,8 @@ _cairo_surface_shadow_fill (cairo_surface_t *target,
shadow_cache = cairo_list_last_entry (shadow_caches,
cairo_shadow_cache_t,
link);
- cairo_list_del (&shadow_cache->link);
- cairo_surface_destroy (shadow_cache->surface);
*shadow_caches_size -= shadow_cache->size;
- free (shadow_cache);
+ _cairo_shadow_cache_destroy (shadow_cache);
}
shadow_cache = malloc (sizeof (cairo_shadow_cache_t));