Changeset 1612


Ignore:
Timestamp:
Mar 31, 2007, 5:40:28 PM (15 years ago)
Author:
joshe
Message:

Remove tr_bencListIter(), it was a stupid idea.

Location:
trunk/libtransmission
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/libtransmission/bencode.c

    r1607 r1612  
    9191
    9292        tr_bencInitInt( val, num );
    93         val->end = p + 1;
     93        *end = p + 1;
    9494    }
    9595    else if( buf[0] == 'l' || buf[0] == 'd' )
     
    134134        }
    135135
    136         val->end = cur + 1;
     136        *end = cur + 1;
    137137    }
    138138    else
     
    167167        tr_bencInitStr( val, sbuf, slen, 0 );
    168168
    169         val->end = p + 1 + val->val.s.i;
     169        *end = p + 1 + val->val.s.i;
    170170    }
    171171
    172172    val->begin = buf;
    173     *end = val->end;
     173    val->end   = *end;
    174174
    175175    return 0;
     
    244244benc_val_t * tr_bencDictFind( benc_val_t * val, const char * key )
    245245{
    246     int len, i;
     246    int len, ii;
    247247
    248248    if( val->type != TYPE_DICT )
     
    253253    len = strlen( key );
    254254   
    255     for( i = 0; i < val->val.l.count; i += 2 )
    256     {
    257         if( TYPE_STR != val->val.l.vals[i].type ||
    258             len != val->val.l.vals[i].val.s.i )
     255    for( ii = 0; ii + 1 < val->val.l.count; ii += 2 )
     256    {
     257        if( TYPE_STR  != val->val.l.vals[ii].type ||
     258            len       != val->val.l.vals[ii].val.s.i ||
     259            0 != memcmp( val->val.l.vals[ii].val.s.s, key, len ) )
    259260        {
    260261            continue;
    261262        }
    262         if( 0 == memcmp(val->val.l.vals[i].val.s.s, key, len ) )
    263         {
    264             return &val->val.l.vals[i+1];
    265         }
     263        return &val->val.l.vals[ii+1];
    266264    }
    267265
     
    287285
    288286    return ret;
    289 }
    290 
    291 benc_val_t * tr_bencListIter( benc_val_t * list, int * pos )
    292 {
    293     assert( TYPE_LIST == list->type );
    294 
    295     if( NULL == list->val.l.vals )
    296     {
    297         return NULL;
    298     }
    299 
    300     if( 0 > *pos )
    301     {
    302         *pos = 0;
    303     }
    304 
    305     if( list->val.l.count <= *pos )
    306     {
    307         return NULL;
    308     }
    309 
    310     (*pos)++;
    311 
    312     return &list->val.l.vals[ (*pos) - 1 ];
    313287}
    314288
  • trunk/libtransmission/bencode.h

    r1607 r1612  
    6161benc_val_t * tr_bencDictFindFirst( benc_val_t * val, ... );
    6262
    63 benc_val_t * tr_bencListIter( benc_val_t * list, int * pos );
    64 
    6563/* marks a string as 'do not free' and returns it */
    6664char *       tr_bencStealStr( benc_val_t * val );
  • trunk/libtransmission/metainfo.c

    r1607 r1612  
    244244    }
    245245
    246     ii = jj = 0;
    247     while( NULL != ( dir = tr_bencListIter( name, &ii ) ) )
    248     {
     246    for( ii = jj = 0; name->val.l.count > ii; ii++ )
     247    {
     248        dir = &name->val.l.vals[ii];
    249249        if( TYPE_STR != dir->type )
    250250        {
     
    298298
    299299        /* iterate through the announce-list's tiers */
    300         ii = 0;
    301         while( NULL != ( subval = tr_bencListIter( val, &ii ) ) )
    302         {
     300        for( ii = 0; ii < val->val.l.count; ii++ )
     301        {
     302            subval = &val->val.l.vals[ii];
    303303            if( TYPE_LIST != subval->type || 0 >= subval->val.l.count )
    304304            {
     
    309309
    310310            /* iterate through the tier's items */
    311             jj = 0;
    312             while( NULL != ( urlval = tr_bencListIter( subval, &jj ) ) )
     311            for( jj = 0; jj < subval->val.l.count; jj++ )
    313312            {
     313                urlval = &subval->val.l.vals[jj];
    314314                if( TYPE_STR != urlval->type ||
    315315                    tr_httpParseUrl( urlval->val.s.s, urlval->val.s.i,
     
    609609        }
    610610
    611         item = NULL;
    612         ii   = 0;
    613         while( NULL != ( item = tr_bencListIter( files, &ii ) ) )
    614         {
     611        for( ii = 0; files->val.l.count > ii; ii++ )
     612        {
     613            item = &files->val.l.vals[ii];
    615614            path = tr_bencDictFindFirst( item, "path.utf-8", "path", NULL );
    616             if( getfile( inf->files[ii-1].name, sizeof( inf->files[ii-1].name ),
     615            if( getfile( inf->files[ii-1].name, sizeof( inf->files[0].name ),
    617616                         inf->name, path ) )
    618617            {
  • trunk/libtransmission/peeraz.h

    r1607 r1612  
    383383    /* fill bitmask with supported message info */
    384384    msgs = tr_bitfieldNew( azmsgCount() );
    385     ii = -1;
    386     while( NULL != ( dict = tr_bencListIter( sub, &ii ) ) )
    387     {
     385    for( ii = 0; ii < sub->val.l.count; ii++ )
     386    {
     387        dict = &sub->val.l.vals[ii];
    388388        if( TYPE_DICT != dict->type )
    389389        {
     
    476476    }
    477477
    478     ii = used = 0;
    479     while( NULL != ( pair = tr_bencListIter( list, &ii ) ) )
    480     {
     478    used = 0;
     479    for( ii = 0; ii < list->val.l.count; ii++ )
     480    {
     481        pair = &list->val.l.vals[ii];
    481482        if( TYPE_STR == pair->type && 6 == pair->val.s.i )
    482483        {
  • trunk/libtransmission/tracker.c

    r1607 r1612  
    11001100    }
    11011101
    1102     ii = -1;
    1103     while( NULL != ( peer = tr_bencListIter( bePeers, &ii ) ) )
    1104     {
     1102    for( ii = 0; bePeers->val.l.count > ii; ii++ )
     1103    {
     1104        peer = &bePeers->val.l.vals[ii];
    11051105        addrval = tr_bencDictFind( peer, "ip" );
    11061106        if( NULL == addrval || TYPE_STR != addrval->type ||
Note: See TracChangeset for help on using the changeset viewer.