Changeset 1612 for trunk/libtransmission/bencode.c
- Timestamp:
- Mar 31, 2007, 5:40:28 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/libtransmission/bencode.c
r1607 r1612 91 91 92 92 tr_bencInitInt( val, num ); 93 val->end = p + 1;93 *end = p + 1; 94 94 } 95 95 else if( buf[0] == 'l' || buf[0] == 'd' ) … … 134 134 } 135 135 136 val->end = cur + 1;136 *end = cur + 1; 137 137 } 138 138 else … … 167 167 tr_bencInitStr( val, sbuf, slen, 0 ); 168 168 169 val->end = p + 1 + val->val.s.i;169 *end = p + 1 + val->val.s.i; 170 170 } 171 171 172 172 val->begin = buf; 173 *end = val->end;173 val->end = *end; 174 174 175 175 return 0; … … 244 244 benc_val_t * tr_bencDictFind( benc_val_t * val, const char * key ) 245 245 { 246 int len, i ;246 int len, ii; 247 247 248 248 if( val->type != TYPE_DICT ) … … 253 253 len = strlen( key ); 254 254 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 ) ) 259 260 { 260 261 continue; 261 262 } 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]; 266 264 } 267 265 … … 287 285 288 286 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 ];313 287 } 314 288
Note: See TracChangeset
for help on using the changeset viewer.