From 53fede89f6917cd097649ae98c0c1503faea0da2 Mon Sep 17 00:00:00 2001 From: Jordan Lee Date: Thu, 28 Apr 2011 23:13:14 +0000 Subject: [PATCH] (trunk gtk) in filter.c's category_filter_model_update(), use a string chunk for all those temporary strings that are allocated in a looop --- gtk/filter.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/gtk/filter.c b/gtk/filter.c index 8f2905b1b..aa668856c 100644 --- a/gtk/filter.c +++ b/gtk/filter.c @@ -133,11 +133,10 @@ category_filter_model_update( GtkTreeStore * store ) GtkTreeIter iter; GtkTreeModel * model = GTK_TREE_MODEL( store ); GPtrArray * hosts = g_ptr_array_new( ); - GHashTable * hosts_hash = g_hash_table_new_full( g_str_hash, g_str_equal, - g_free, g_free ); + GStringChunk * strings = g_string_chunk_new( 4096 ); + GHashTable * hosts_hash = g_hash_table_new_full( g_str_hash, g_str_equal, NULL, g_free ); GObject * o = G_OBJECT( store ); - GtkTreeModel * tmodel = GTK_TREE_MODEL( - g_object_get_qdata( o, TORRENT_MODEL_KEY ) ); + GtkTreeModel * tmodel = GTK_TREE_MODEL( g_object_get_qdata( o, TORRENT_MODEL_KEY ) ); g_object_steal_qdata( o, DIRTY_KEY ); @@ -160,29 +159,31 @@ category_filter_model_update( GtkTreeStore * store ) { int k; int * count; - char key[1024]; + char buf[1024]; + char * key; + + gtr_get_host_from_url( buf, sizeof( buf ), inf->trackers[i].announce ); + key = g_string_chunk_insert( strings, buf ); - gtr_get_host_from_url( key, sizeof( key ), inf->trackers[i].announce ); count = g_hash_table_lookup( hosts_hash, key ); if( count == NULL ) { count = tr_new0( int, 1 ); - g_hash_table_insert( hosts_hash, g_strdup( key ), count ); - g_ptr_array_add( hosts, g_strdup( key ) ); + g_hash_table_insert( hosts_hash, key, count ); + g_ptr_array_add( hosts, key ); } for( k=0; k