Changeset 12293


Ignore:
Timestamp:
Apr 1, 2011, 4:13:51 AM (11 years ago)
Author:
jordan
Message:

(trunk libT) more malloc pruning. *yawn*

tr_metainfoGetBasename(): avoid an unnecessary malloc() + free()
getannounce(): avoid an unnecessary malloc() + free() per each tracker

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/libtransmission/metainfo.c

    r12290 r12293  
    3737tr_metainfoGetBasename( const tr_info * inf )
    3838{
    39     char *ret, *pch, *name;
    40 
    41     name = tr_strdup( inf->name );
    42     for( pch=name; pch && *pch; ++pch )
    43         if( *pch == '/' )
    44             *pch = '_';
    45 
    46     ret = tr_strdup_printf( "%s.%16.16s", name, inf->hashString );
    47 
    48     tr_free( name );
     39    size_t i;
     40    const size_t name_len = strlen( inf->name );
     41    char * ret = tr_strdup_printf( "%s.%16.16s", inf->name, inf->hashString );
     42
     43    for( i=0; i<name_len; ++i )
     44        if( ret[i] == '/' )
     45            ret[i] = '_';
     46
     47
    4948    return ret;
    5049}
    5150
    5251static char*
    53 getTorrentFilename( const tr_session * session,
    54                     const tr_info *   inf )
     52getTorrentFilename( const tr_session * session, const tr_info * inf )
    5553{
    5654    char * base = tr_metainfoGetBasename( inf );
     
    306304                {
    307305                    char * url = tr_strstrip( tr_strdup( str ) );
    308                     if( tr_urlIsValidTracker( url ) )
    309                     {
     306                    if( !tr_urlIsValidTracker( url ) )
     307                        tr_free( url );
     308                    else {
    310309                        tr_tracker_info * t = trackers + trackerCount;
    311310                        t->tier = validTiers;
    312                         t->announce = tr_strdup( url );
     311                        t->announce = url;
    313312                        t->scrape = tr_convertAnnounceToScrape( url );
    314313                        t->id = trackerCount;
     
    317316                        ++trackerCount;
    318317                    }
    319                     tr_free( url );
    320318                }
    321319            }
     
    338336    {
    339337        char * url = tr_strstrip( tr_strdup( str ) );
    340         if( tr_urlIsValidTracker( url ) )
    341         {
     338        if( !tr_urlIsValidTracker( url ) )
     339            tr_free( url );
     340        else {
    342341            trackers = tr_new0( tr_tracker_info, 1 );
    343342            trackers[trackerCount].tier = 0;
    344             trackers[trackerCount].announce = tr_strdup( url );
     343            trackers[trackerCount].announce = url;
    345344            trackers[trackerCount].scrape = tr_convertAnnounceToScrape( url );
    346345            trackers[trackerCount].id = 0;
     
    348347            /*fprintf( stderr, "single announce: [%s]\n", url );*/
    349348        }
    350         tr_free( url );
    351349    }
    352350
     
    585583
    586584void
    587 tr_metainfoRemoveSaved( const tr_session * session,
    588                         const tr_info *   inf )
     585tr_metainfoRemoveSaved( const tr_session * session, const tr_info * inf )
    589586{
    590587    char * filename;
Note: See TracChangeset for help on using the changeset viewer.