From e2584b04ffd8474c2c4b4a8e63d664bf67e97a2a Mon Sep 17 00:00:00 2001 From: Jordan Lee Date: Fri, 18 Feb 2011 19:31:18 +0000 Subject: [PATCH] (trunk libT) #4047 "timeChecked for the last piece is not saved to a resume file" -- fixed. A garden variety off-by-one error. good patch by jusid and revision by me. --- libtransmission/resume.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libtransmission/resume.c b/libtransmission/resume.c index 5d0f13675..a88996927 100644 --- a/libtransmission/resume.c +++ b/libtransmission/resume.c @@ -458,7 +458,7 @@ saveProgress( tr_benc * dict, const tr_torrent * tor ) const int offset = oldest_nonzero - 1; tr_benc * ll = tr_bencListAddList( l, 2 + f->lastPiece - f->firstPiece ); tr_bencListAddInt( ll, offset ); - for( p=&inf->pieces[f->firstPiece], pend=&inf->pieces[f->lastPiece]; p!=pend; ++p ) + for( p=&inf->pieces[f->firstPiece], pend=&inf->pieces[f->lastPiece]+1; p!=pend; ++p ) tr_bencListAddInt( ll, p->timeChecked ? p->timeChecked - offset : 0 ); } } @@ -512,7 +512,7 @@ loadProgress( tr_benc * dict, tr_torrent * tor ) tr_benc * b = tr_bencListChild( l, fi ); const tr_file * f = &inf->files[fi]; tr_piece * p = &inf->pieces[f->firstPiece]; - const tr_piece * pend = &inf->pieces[f->lastPiece]; + const tr_piece * pend = &inf->pieces[f->lastPiece]+1; if( tr_bencIsInt( b ) ) { @@ -533,7 +533,7 @@ loadProgress( tr_benc * dict, tr_torrent * tor ) { int64_t t = 0; tr_bencGetInt( tr_bencListChild( b, i+1 ), &t ); - inf->pieces[f->firstPiece+i].timeChecked = (time_t)(t + offset); + inf->pieces[f->firstPiece+i].timeChecked = (time_t)(t ? t + offset : 0); } } }