forked from premiere/premiere-libtorrent
fix for prioritize_files()
This commit is contained in:
parent
16e17f066c
commit
75d61207f2
|
@ -1111,12 +1111,15 @@ namespace libtorrent
|
||||||
for (int i = 0; i < int(files.size()); ++i)
|
for (int i = 0; i < int(files.size()); ++i)
|
||||||
{
|
{
|
||||||
size_type start = position;
|
size_type start = position;
|
||||||
position += m_torrent_file.file_at(i).size;
|
size_type size = m_torrent_file.file_at(i).size;
|
||||||
|
if (size == 0) continue;
|
||||||
|
position += size;
|
||||||
// mark all pieces of the file with this file's priority
|
// mark all pieces of the file with this file's priority
|
||||||
// but only if the priority is higher than the pieces
|
// but only if the priority is higher than the pieces
|
||||||
// already set (to avoid problems with overlapping pieces)
|
// already set (to avoid problems with overlapping pieces)
|
||||||
int start_piece = int(start / piece_length);
|
int start_piece = int(start / piece_length);
|
||||||
int last_piece = int(position / piece_length);
|
int last_piece = int((position - 1) / piece_length);
|
||||||
|
assert(last_piece <= int(pieces.size()));
|
||||||
// if one piece spans several files, we might
|
// if one piece spans several files, we might
|
||||||
// come here several times with the same start_piece, end_piece
|
// come here several times with the same start_piece, end_piece
|
||||||
std::for_each(pieces.begin() + start_piece
|
std::for_each(pieces.begin() + start_piece
|
||||||
|
@ -1134,8 +1137,6 @@ namespace libtorrent
|
||||||
i->second->update_interest();
|
i->second->update_interest();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void torrent::filter_piece(int index, bool filter)
|
void torrent::filter_piece(int index, bool filter)
|
||||||
{
|
{
|
||||||
INVARIANT_CHECK;
|
INVARIANT_CHECK;
|
||||||
|
|
Loading…
Reference in New Issue