]> granicus.if.org Git - transmission/commitdiff
(trunk libT) #3767 "rarest first policy" -- possible fix for assertion error reported...
authorJordan Lee <jordan@transmissionbt.com>
Thu, 17 Feb 2011 12:57:36 +0000 (12:57 +0000)
committerJordan Lee <jordan@transmissionbt.com>
Thu, 17 Feb 2011 12:57:36 +0000 (12:57 +0000)
Resolve the problem described @ https://trac.transmissionbt.com/ticket/3767#comment:38

libtransmission/peer-mgr.c

index 3f951acee7db11059b6d601c60d0e8337874a408..adf566f2cb0fe00fa0c16d36d774f3cdf5397ecb 100644 (file)
@@ -1206,10 +1206,9 @@ tr_incrReplicationFromBitfield( Torrent * t, const tr_bitfield * b )
     assert( n == t->pieceReplicationSize );
     assert( tr_bitfieldTestFast( b, n-1 ) );
 
-    if( tr_bitfieldTestFast( b, n-1 ) )
-        for( i=0; i<n; ++i )
-            if( tr_bitfieldHasFast( b, i ) )
-                ++rep[i];
+    for( i=0; i<n; ++i )
+        if( tr_bitfieldHas( b, i ) )
+            ++rep[i];
 
     if( t->pieceSortState == PIECES_SORTED_BY_WEIGHT )
         invalidatePieceSorting( t );
@@ -1252,10 +1251,9 @@ tr_decrReplicationFromBitset( Torrent * t, const tr_bitset * bitset )
     {
         const tr_bitfield * const b = &bitset->bitfield;
 
-        if( tr_bitfieldTestFast( b, n-1 ) )
-            for( i=0; i<n; ++i )
-                if( tr_bitfieldHasFast( b, i ) )
-                    --t->pieceReplication[i];
+        for( i=0; i<n; ++i )
+            if( tr_bitfieldHas( b, i ) )
+                --t->pieceReplication[i];
 
         if( t->pieceSortState == PIECES_SORTED_BY_WEIGHT )
             invalidatePieceSorting( t );