diff options
author | Bryce Harrington <b.harrington@samsung.com> | 2013-09-15 18:19:06 -0700 |
---|---|---|
committer | nisanthmp <nisanth.mp@samsung.com> | 2015-06-12 12:23:33 +0530 |
commit | b76b03fc782c0489d7b5c64305529a9ca47e5c4b (patch) | |
tree | ae7585b9f60d5fad6d04129fa2804a0e39b93346 | |
parent | 242802531a39590e7fb419d5c734ee45a9266dde (diff) | |
download | cairo-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.c | 32 |
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)); |