Changeset 12306


Ignore:
Timestamp:
Apr 4, 2011, 4:54:09 PM (11 years ago)
Author:
jordan
Message:

(trunk gtk) more heap pruning: avoid unnecessary malloc() + free() calls in gtr_get_host_from_url()

Location:
trunk/gtk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/gtk/favicon.c

    r12204 r12306  
    179179                          gpointer      pixbuf_ready_func_data )
    180180{
    181     char * host = gtr_get_host_from_url( url );
     181    char host[1024];
     182    gtr_get_host_from_url( host, sizeof( host ), url );
    182183    gtr_get_favicon( session, host, pixbuf_ready_func, pixbuf_ready_func_data );
    183     g_free( host );
    184184}
  • trunk/gtk/filter.c

    r12234 r12306  
    160160        {
    161161            int k;
    162             char * key = gtr_get_host_from_url( inf->trackers[i].announce );
    163             int * count = g_hash_table_lookup( hosts_hash, key );
     162            int * count;
     163            char key[1024];
     164
     165            gtr_get_host_from_url( key, sizeof( key ), inf->trackers[i].announce );
     166            count = g_hash_table_lookup( hosts_hash, key );
    164167            if( count == NULL )
    165168            {
     
    173176                    break;
    174177            if( k==keyCount )
    175                 keys[keyCount++] = key;
    176             else
    177                 g_free( key );
     178                keys[keyCount++] = g_strdup( key );
    178179        }
    179180
     
    558559            int i;
    559560            char * host;
     561            char tmp[1024];
    560562            gtk_tree_model_get( model, &iter, CAT_FILTER_COL_HOST, &host, -1 );
    561563            for( i=0; i<inf->trackerCount; ++i ) {
    562                 char * tmp = gtr_get_host_from_url( inf->trackers[i].announce );
    563                 const gboolean hit = !strcmp( tmp, host );
    564                 g_free( tmp );
    565                 if( hit )
     564                gtr_get_host_from_url( tmp, sizeof( tmp ), inf->trackers[i].announce );
     565                if( !strcmp( tmp, host ) )
    566566                    break;
    567567            }
  • trunk/gtk/util.c

    r12233 r12306  
    206206
    207207/* pattern-matching text; ie, legaltorrents.com */
    208 char*
    209 gtr_get_host_from_url( const char * url )
    210 {
    211     char * name;
     208void
     209gtr_get_host_from_url( char * buf, size_t buflen, const char * url )
     210{
    212211    char * h = NULL;
    213212
     
    215214
    216215    if( tr_addressIsIP( h ) )
    217         name = g_strdup( h );
     216        g_strlcpy( buf, url, buflen );
    218217    else {
    219218        const char * first_dot = strchr( h, '.' );
    220219        const char * last_dot = strrchr( h, '.' );
    221220        if( ( first_dot ) && ( last_dot ) && ( first_dot != last_dot ) )
    222             name = g_strdup( first_dot + 1 );
     221            g_strlcpy( buf, first_dot + 1, buflen );
    223222        else
    224             name = g_strdup( h );
     223            g_strlcpy( buf, h, buflen );
    225224    }
    226225
    227226    tr_free( h );
    228     return name;
    229227}
    230228
  • trunk/gtk/util.h

    r12222 r12306  
    6969
    7070/* http://www.legaltorrents.com/some/announce/url --> legaltorrents.com */
    71 char* gtr_get_host_from_url( const char * url );
     71void gtr_get_host_from_url( char * buf, size_t buflen, const char * url );
    7272
    7373gboolean gtr_is_supported_url( const char * str );
Note: See TracChangeset for help on using the changeset viewer.