Changeset 7816


Ignore:
Timestamp:
Jan 30, 2009, 12:41:08 AM (12 years ago)
Author:
charles
Message:

(trunk libT) more assertions

Location:
trunk/libtransmission
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/libtransmission/torrent.c

    r7812 r7816  
    447447    tor->session   = session;
    448448    tor->uniqueId = nextUniqueId++;
     449    tor->magicNumber = TORRENT_MAGIC_NUMBER;
    449450
    450451    randomizeTiers( info );
     
    634635                          const char * path )
    635636{
     637    assert( tr_isTorrent( tor  ) );
     638
    636639    if( !path || !tor->downloadDir || strcmp( path, tor->downloadDir ) )
    637640    {
     
    645648tr_torrentGetDownloadDir( const tr_torrent * tor )
    646649{
     650    assert( tr_isTorrent( tor  ) );
     651
    647652    return tor->downloadDir;
    648653}
     
    651656tr_torrentChangeMyPort( tr_torrent * tor )
    652657{
     658    assert( tr_isTorrent( tor  ) );
     659
    653660    if( tor->tracker )
    654661        tr_trackerChangeMyPort( tor->tracker );
     
    660667    tr_torrent * tor = vtor;
    661668
     669    assert( tr_isTorrent( tor  ) );
     670
    662671    if( tor->isRunning )
    663672        tr_trackerReannounce( tor->tracker );
     
    667676tr_torrentManualUpdate( tr_torrent * tor )
    668677{
     678    assert( tr_isTorrent( tor  ) );
     679
    669680    tr_runInEventThread( tor->session, tr_torrentManualUpdateImpl, tor );
    670681}
     
    673684tr_torrentCanManualUpdate( const tr_torrent * tor )
    674685{
    675     return ( tor )
    676            && ( tor->isRunning )
    677            && ( tr_trackerCanManualAnnounce( tor->tracker ) );
     686    return ( tr_isTorrent( tor  ) )
     687        && ( tor->isRunning )
     688        && ( tr_trackerCanManualAnnounce( tor->tracker ) );
    678689}
    679690
     
    681692tr_torrentInfo( const tr_torrent * tor )
    682693{
    683     return tor ? &tor->info : NULL;
     694    return tr_isTorrent( tor ) ? &tor->info : NULL;
    684695}
    685696
     
    689700    const time_t now = time( NULL );
    690701
    691     return tor && ( now == tor->lastStatTime ) ? &tor->stats
    692            : tr_torrentStat( tor );
     702    return tr_isTorrent( tor ) && ( now == tor->lastStatTime )
     703         ? &tor->stats
     704         : tr_torrentStat( tor );
    693705}
    694706
     
    696708tr_torrentGetActivity( tr_torrent * tor )
    697709{
     710    assert( tr_isTorrent( tor ) );
     711
    698712    tr_torrentRecheckCompleteness( tor );
    699713
     
    722736        return NULL;
    723737
     738    assert( tr_isTorrent( tor ) );
    724739    tr_torrentLock( tor );
    725740
     
    845860    uint64_t               haveBytes = 0;
    846861
    847     assert( tor );
     862    assert( tr_isTorrent( tor ) );
    848863    assert( fileIndex < tor->info.fileCount );
    849864    assert( file->offset + file->length <= tor->info.totalSize );
     
    888903    tr_file_stat *        walk = files;
    889904
     905    assert( tr_isTorrent( tor ) );
     906
    890907    for( i = 0; i < n; ++i, ++walk )
    891908    {
     
    915932tr_torrentWebSpeeds( const tr_torrent * tor )
    916933{
    917     return tor ? tr_peerMgrWebSpeeds( tor ) : NULL;
     934    return tr_isTorrent( tor )
     935         ? tr_peerMgrWebSpeeds( tor )
     936         : NULL;
    918937}
    919938
     
    924943    tr_peer_stat * ret = NULL;
    925944
    926     if( tor )
     945    if( tr_isTorrent( tor ) )
    927946        ret = tr_peerMgrPeerStats( tor, peerCount );
    928947
     
    950969                          int                size )
    951970{
     971    assert( tr_isTorrent( tor ) );
     972
    952973    tr_torrentLock( tor );
    953974    tr_cpGetAmountDone( &tor->completion, tab, size );
     
    958979tr_torrentResetTransferStats( tr_torrent * tor )
    959980{
     981    assert( tr_isTorrent( tor ) );
     982
    960983    tr_torrentLock( tor );
    961984
     
    975998                       tr_bool          has )
    976999{
     1000    assert( tr_isTorrent( tor ) );
     1001    assert( pieceIndex < tor->info.pieceCount );
     1002
    9771003    tr_torrentLock( tor );
    978 
    979     assert( tor );
    980     assert( pieceIndex < tor->info.pieceCount );
    9811004
    9821005    if( has )
     
    9991022    tr_info *    inf = &tor->info;
    10001023
    1001     assert( tor );
     1024    assert( tr_isTorrent( tor ) );
    10021025    assert( !tor->isRunning );
    10031026
     
    10471070{
    10481071    tr_torrent * tor = vtor;
     1072
     1073    assert( tr_isTorrent( tor ) );
    10491074
    10501075    tr_globalLock( tor->session );
     
    10651090checkAndStartCB( tr_torrent * tor )
    10661091{
    1067     assert( tor );
     1092    assert( tr_isTorrent( tor ) );
    10681093    assert( tr_isSession( tor->session ) );
    10691094
     
    10751100              int          reloadProgress )
    10761101{
     1102    assert( tr_isTorrent( tor ) );
     1103
    10771104    tr_globalLock( tor->session );
    10781105
     
    10961123tr_torrentStart( tr_torrent * tor )
    10971124{
    1098     if( tor )
     1125    if( tr_isTorrent( tor ) )
    10991126        torrentStart( tor, TRUE );
    11001127}
     
    11031130torrentRecheckDoneImpl( void * vtor )
    11041131{
    1105     tr_torrentRecheckCompleteness( vtor );
     1132    tr_torrent * tor = vtor;
     1133
     1134    assert( tr_isTorrent( tor ) );
     1135    tr_torrentRecheckCompleteness( tor );
    11061136}
    11071137
     
    11091139torrentRecheckDoneCB( tr_torrent * tor )
    11101140{
     1141    assert( tr_isTorrent( tor ) );
     1142
    11111143    tr_runInEventThread( tor->session, torrentRecheckDoneImpl, tor );
    11121144}
     
    11151147tr_torrentVerify( tr_torrent * tor )
    11161148{
     1149    assert( tr_isTorrent( tor ) );
     1150
    11171151    tr_verifyRemove( tor );
    11181152
     
    11301164    tr_file_index_t i;
    11311165    struct evbuffer * buf = evbuffer_new( );
     1166
     1167    assert( tr_isTorrent( tor ) );
    11321168
    11331169    for( i=0; i<tor->info.fileCount; ++i )
     
    11481184    tr_torrent * tor = vtor;
    11491185
     1186    assert( tr_isTorrent( tor ) );
     1187
    11501188    tr_verifyRemove( tor );
    11511189    tr_peerMgrStopTorrent( tor );
     
    11581196tr_torrentStop( tr_torrent * tor )
    11591197{
    1160     if( tor )
     1198    if( tr_isTorrent( tor ) )
    11611199    {
    11621200        tr_globalLock( tor->session );
     
    11761214    tr_torrent * tor = vtor;
    11771215
     1216    assert( tr_isTorrent( tor ) );
     1217
    11781218    tr_torrentSaveResume( tor );
    11791219    tor->isRunning = 0;
     
    11901230tr_torrentFree( tr_torrent * tor )
    11911231{
    1192     if( tor )
     1232    if( tr_isTorrent( tor ) )
    11931233    {
    11941234        tr_session * session = tor->session;
     1235        assert( tr_isSession( session ) );
    11951236        tr_globalLock( session );
    11961237
     
    12051246tr_torrentRemove( tr_torrent * tor )
    12061247{
     1248    assert( tr_isTorrent( tor ) );
     1249
    12071250    tor->isDeleting = 1;
    12081251    tr_torrentFree( tor );
     
    12381281                        tr_completeness    status )
    12391282{
    1240     assert( tor );
     1283    assert( tr_isTorrent( tor ) );
    12411284    assert( ( status == TR_LEECH )
    12421285         || ( status == TR_SEED )
     
    12521295                                   void                          * user_data )
    12531296{
    1254     assert( tor );
     1297    assert( tr_isTorrent( tor ) );
     1298
    12551299    tor->completeness_func = func;
    12561300    tor->completeness_func_user_data = user_data;
     
    12671311{
    12681312    tr_completeness completeness;
     1313
     1314    assert( tr_isTorrent( tor ) );
    12691315
    12701316    tr_torrentLock( tor );
     
    13121358    tr_file *        file;
    13131359
    1314     assert( tor );
     1360    assert( tr_isTorrent( tor ) );
    13151361    assert( fileIndex < tor->info.fileCount );
    1316     assert(
    1317         priority == TR_PRI_LOW || priority == TR_PRI_NORMAL || priority ==
    1318         TR_PRI_HIGH );
     1362    assert( priority == TR_PRI_LOW || priority == TR_PRI_NORMAL || priority == TR_PRI_HIGH );
    13191363
    13201364    file = &tor->info.files[fileIndex];
     
    13331377    tr_file_index_t i;
    13341378
     1379    assert( tr_isTorrent( tor ) );
     1380
    13351381    tr_torrentLock( tor );
    13361382
     
    13471393{
    13481394    tr_priority_t ret;
     1395
     1396    assert( tr_isTorrent( tor ) );
    13491397
    13501398    tr_torrentLock( tor );
     
    13631411    tr_priority_t * p;
    13641412
     1413    assert( tr_isTorrent( tor ) );
     1414
    13651415    tr_torrentLock( tor );
    13661416    p = tr_new0( tr_priority_t, tor->info.fileCount );
     
    13821432    int doDownload;
    13831433
     1434    assert( tr_isTorrent( tor ) );
     1435
    13841436    tr_torrentLock( tor );
    13851437
     
    14011453    tr_piece_index_t lastPiece, lastPieceDND;
    14021454    tr_file_index_t  i;
     1455
     1456    assert( tr_isTorrent( tor ) );
    14031457
    14041458    file = &tor->info.files[fileIndex];
     
    14541508    tr_file_index_t i;
    14551509
     1510    assert( tr_isTorrent( tor ) );
     1511
    14561512    tr_torrentLock( tor );
    14571513
     
    14691525                      tr_bool           doDownload )
    14701526{
     1527    assert( tr_isTorrent( tor ) );
     1528
    14711529    tr_torrentLock( tor );
    14721530    tr_torrentInitFileDLs( tor, files, fileCount, doDownload );
     
    14831541                        uint16_t     maxConnectedPeers )
    14841542{
     1543    assert( tr_isTorrent( tor ) );
     1544
    14851545    tor->maxConnectedPeers = maxConnectedPeers;
    14861546}
     
    14891549tr_torrentGetPeerLimit( const tr_torrent * tor )
    14901550{
     1551    assert( tr_isTorrent( tor ) );
     1552
    14911553    return tor->maxConnectedPeers;
    14921554}
     
    15011563           uint32_t           offset )
    15021564{
    1503     const tr_info *  inf = &tor->info;
    15041565    tr_block_index_t ret;
    15051566
     1567    assert( tr_isTorrent( tor ) );
     1568
    15061569    ret = index;
    1507     ret *= ( inf->pieceSize / tor->blockSize );
     1570    ret *= ( tor->info.pieceSize / tor->blockSize );
    15081571    ret += offset / tor->blockSize;
    15091572    return ret;
     
    15171580{
    15181581    int err = 0;
     1582
     1583    assert( tr_isTorrent( tor ) );
    15191584
    15201585    if( index >= tor->info.pieceCount )
     
    15451610    uint64_t ret;
    15461611
     1612    assert( tr_isTorrent( tor ) );
     1613
    15471614    ret = tor->info.pieceSize;
    15481615    ret *= index;
     
    15611628                           tr_bool             isChecked )
    15621629{
     1630    assert( tr_isTorrent( tor ) );
     1631
    15631632    if( isChecked )
    15641633        tr_bitfieldAdd( &tor->checkedPieces, piece );
     
    15751644    const tr_piece_index_t begin = file->firstPiece;
    15761645    const tr_piece_index_t end = file->lastPiece + 1;
     1646
     1647    assert( tr_isTorrent( tor ) );
    15771648
    15781649    if( isChecked )
     
    15921663    tr_bool                isChecked = TRUE;
    15931664
     1665    assert( tr_isTorrent( tor ) );
     1666
    15941667    for( i = begin; isChecked && i < end; ++i )
    15951668        if( !tr_torrentIsPieceChecked( tor, i ) )
     
    16021675tr_torrentUncheck( tr_torrent * tor )
    16031676{
     1677    assert( tr_isTorrent( tor ) );
     1678
    16041679    tr_bitfieldRemRange ( &tor->checkedPieces, 0, tor->info.pieceCount );
    16051680}
     
    16081683tr_torrentCountUncheckedPieces( const tr_torrent * tor )
    16091684{
     1685    assert( tr_isTorrent( tor ) );
     1686
    16101687    return tor->info.pieceCount - tr_bitfieldCountTrueBits( &tor->checkedPieces );
    16111688}
     
    16181695    const size_t n = tor->info.fileCount;
    16191696    time_t *     m = tr_new0( time_t, n );
     1697
     1698    assert( tr_isTorrent( tor ) );
    16201699
    16211700    for( i = 0; i < n; ++i )
     
    16491728    tr_benc metainfo;
    16501729
     1730    assert( tr_isTorrent( tor ) );
     1731
    16511732    /* save to the .torrent file */
    16521733    if( !tr_bencLoadFile( tor->info.torrent, &metainfo ) )
     
    17051786                        time_t       t )
    17061787{
     1788    assert( tr_isTorrent( tor ) );
     1789
    17071790    tor->addedDate = t;
    17081791}
     
    17131796                           time_t       t )
    17141797{
     1798    assert( tr_isTorrent( tor ) );
     1799
    17151800    tor->activityDate = t;
    17161801}
     
    17211806                       time_t       t )
    17221807{
     1808    assert( tr_isTorrent( tor ) );
     1809
    17231810    tor->doneDate = t;
    17241811}
     
    17351822    struct stat sb;
    17361823    uint64_t bytesLeft = 0;
     1824
     1825    assert( tr_isTorrent( tor ) );
    17371826
    17381827    for( it=tor->info.files, end=it+tor->info.fileCount; it!=end; ++it )
     
    18131902    struct stat sb;
    18141903    char * buf;
     1904
     1905    assert( tr_isTorrent( tor ) );
    18151906
    18161907    buf = tr_buildPath( dir, base, NULL );
     
    18561947    char * root = tr_buildPath( tor->downloadDir, tmp, NULL );
    18571948
     1949    assert( tr_isTorrent( tor ) );
     1950
    18581951    for( f=0; f<tor->info.fileCount; ++f )
    18591952        tr_ptrArrayInsertSorted( &torrentFiles, tor->info.files[f].name, vstrcmp );
     
    19011994tr_torrentDeleteLocalData( tr_torrent * tor, tr_fileFunc fileFunc )
    19021995{
     1996    assert( tr_isTorrent( tor ) );
     1997
    19031998    if( fileFunc == NULL )
    19041999        fileFunc = remove;
  • trunk/libtransmission/torrent.h

    r7710 r7816  
    134134    struct tr_ratecontrol    swarmSpeed;
    135135
     136    int                      magicNumber;
     137
    136138    int                      error;
    137139    char                     errorString[128];
     
    278280}
    279281
     282/***
     283****
     284***/
     285
     286enum
     287{
     288    TORRENT_MAGIC_NUMBER = 95549
     289};
     290
     291static inline tr_bool tr_isTorrent( const tr_torrent * tor )
     292{
     293    return ( tor != NULL )
     294        && ( tor->magicNumber == TORRENT_MAGIC_NUMBER )
     295        && ( tr_isSession( tor->session ) );
     296}
     297
    280298#endif
  • trunk/libtransmission/verify.c

    r7658 r7816  
    3535
    3636static void
    37 fireCheckDone( tr_torrent *      torrent,
    38                tr_verify_done_cb verify_done_cb )
    39 {
     37fireCheckDone( tr_torrent * tor, tr_verify_done_cb verify_done_cb )
     38{
     39    assert( tr_isTorrent( tor ) );
     40
    4041    if( verify_done_cb )
    41         verify_done_cb( torrent );
     42        verify_done_cb( tor );
    4243}
    4344
    4445static struct verify_node currentNode;
    45 
    46 static tr_list *          verifyList = NULL;
    47 
    48 static tr_thread *        verifyThread = NULL;
    49 
    50 static int                stopCurrent = FALSE;
     46static tr_list * verifyList = NULL;
     47static tr_thread * verifyThread = NULL;
     48static int stopCurrent = FALSE;
    5149
    5250static tr_lock*
     
    145143
    146144        tr_torinf( tor, _( "Verifying torrent" ) );
     145        assert( tr_isTorrent( tor ) );
    147146        tor->verifyState = TR_VERIFY_NOW;
    148147        buffer = tr_new( uint8_t, tor->info.pieceSize );
     
    151150        tr_free( buffer );
    152151        tor->verifyState = TR_VERIFY_NONE;
     152        assert( tr_isTorrent( tor ) );
    153153
    154154        if( !stopCurrent )
     
    169169{
    170170    const int uncheckedCount = tr_torrentCountUncheckedPieces( tor );
     171
     172    assert( tr_isTorrent( tor ) );
    171173
    172174    if( !uncheckedCount )
     
    211213    tr_lockLock( lock );
    212214
     215    assert( tr_isTorrent( tor ) );
     216
    213217    found = ( tor == currentNode.torrent )
    214218         || ( tr_list_find( verifyList, tor, compareVerifyByTorrent ) != NULL );
     
    222226{
    223227    tr_lock * lock = getVerifyLock( );
    224 
    225228    tr_lockLock( lock );
     229
     230    assert( tr_isTorrent( tor ) );
    226231
    227232    if( tor == currentNode.torrent )
Note: See TracChangeset for help on using the changeset viewer.