void _vte_termcap_free (VteTermcap *termcap) { g_static_mutex_lock (&_vte_termcap_mutex); g_cache_remove (_vte_termcap_cache, termcap); g_static_mutex_unlock (&_vte_termcap_mutex); }
void gtk_gc_release (GdkGC *gc) { if (initialize) gtk_gc_init (); g_cache_remove (gc_cache, gc); }
/* Free a matcher. */ void _vte_matcher_free(struct _vte_matcher *matcher) { g_assert(_vte_matcher_cache != NULL); g_static_mutex_lock(&_vte_matcher_mutex); g_cache_remove(_vte_matcher_cache, matcher); g_static_mutex_unlock(&_vte_matcher_mutex); }
void cache_test() { char *str1,*str2,*str3; GCache *cache = NULL; gint user_data = 0; g_assert((cache = g_cache_new( (GCacheNewFunc) g_ascii_strup, g_free, (GCacheDupFunc) g_strdup, g_free, g_str_hash, g_str_hash, g_str_equal)) != NULL); str1 = g_cache_insert(cache,"test"); g_assert(!strcmp("TEST",str1)); str2 = g_cache_insert(cache,"test"); g_assert(!strcmp("TEST",str1)); str3 = g_cache_insert(cache,"glib"); g_assert(!strcmp("GLIB",str3)); g_cache_key_foreach (cache,(GHFunc)function,&user_data); //g_cache_key_foreach would call function twice and make user_data == 2 g_assert(user_data == 2); g_cache_value_foreach (cache,(GHFunc)function,&user_data); //g_cache_value_foreach would call function twice and make user_data == 4 g_assert(user_data == 4); g_cache_remove(cache,str1); g_cache_remove(cache,str2); g_cache_remove(cache,str3); g_cache_destroy(cache); }