/* Immediately destroys the given cache, freeing all resources associated with it. As part of this process, the entry_destroy() function, (as passed to _cairo_cache_init()), will be called for each entry in the cache.  */
void _cairo_cache_fini(cairo_cache_t *cache)
/* Immediately destroys the given cache, freeing all resources associated with it. As part of this process, the entry_destroy() function, (as passed to _cairo_cache_init()), will be called for each entry in the cache.  */
void _cairo_cache_fini(cairo_cache_t *cache)
{
    _cairo_hash_table_foreach (cache->hash_table,
			       _cairo_cache_pluck,
			       cache);
    assert (cache->size == 0);
    _cairo_hash_table_destroy (cache->hash_table);
}