/* If cache is not frozen, eject entries randomly until the size of the cache is at least @additional bytes less than cache->max_size. That is, make enough room to accommodate a new entry of size @additional.  */
static void _cairo_cache_shrink_to_accommodate(cairo_cache_t *cache, unsigned long additional)
/* If cache is not frozen, eject entries randomly until the size of the cache is at least @additional bytes less than cache->max_size. That is, make enough room to accommodate a new entry of size @additional.  */
static void _cairo_cache_shrink_to_accommodate(cairo_cache_t *cache, unsigned long additional)
{
    while (cache->size + additional > cache->max_size) {
	if (! _cairo_cache_remove_random (cache))
	    return;
    }
}