/*
 * frees the cache memory
 */
void free_cache(){
	proxy_cache_t *cur_block = head;

	while (cur_block != NULL)
	{
		head = cur_block->next_entry;
		free_cache_entry(cur_block);
		cur_block = head;
	}
}
/*
 *evict_lines_for_size - evict cache entries starting
 *from the tail until we get enough space for the given size
 */
void evict_lru_entries(int size)
{
	proxy_cache_t *cur_block = tail;
	while((MAX_CACHE_SIZE - filled_cache_space) >= size)
	{
		tail = cur_block->prev_entry;
		filled_cache_space -= cur_block->object_size;
		free_cache_entry(cur_block);
	}
	return;
}
static void
cache_entry_unref (PangoWin32FontCache *cache,
		   CacheEntry          *entry)
{
  if (g_atomic_int_dec_and_test (&entry->ref_count))
    {
      PING (("removing cache entry %p", entry->hfont));

      g_hash_table_remove (cache->forward, &entry->logfontw);
      g_hash_table_remove (cache->back, entry->hfont);

      free_cache_entry (NULL, entry, cache);
    }
}