some piece picker asserts and cleanup
This commit is contained in:
parent
9f50662c92
commit
7adbeae273
|
@ -170,6 +170,8 @@ namespace libtorrent
|
||||||
|
|
||||||
piece_picker::downloading_piece& piece_picker::add_download_piece(int piece)
|
piece_picker::downloading_piece& piece_picker::add_download_piece(int piece)
|
||||||
{
|
{
|
||||||
|
TORRENT_ASSERT(piece >= 0);
|
||||||
|
TORRENT_ASSERT(piece < int(m_piece_map.size()));
|
||||||
int num_downloads = m_downloads.size();
|
int num_downloads = m_downloads.size();
|
||||||
int block_index = num_downloads * m_blocks_per_piece;
|
int block_index = num_downloads * m_blocks_per_piece;
|
||||||
if (int(m_block_info.size()) < block_index + m_blocks_per_piece)
|
if (int(m_block_info.size()) < block_index + m_blocks_per_piece)
|
||||||
|
@ -184,14 +186,14 @@ namespace libtorrent
|
||||||
m_downloads[i].info = &m_block_info[m_downloads[i].info - base];
|
m_downloads[i].info = &m_block_info[m_downloads[i].info - base];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
downloading_piece cmp;
|
|
||||||
cmp.index = piece;
|
|
||||||
std::vector<downloading_piece>::iterator i = std::lower_bound(m_downloads.begin()
|
|
||||||
, m_downloads.end(), cmp);
|
|
||||||
TORRENT_ASSERT(i == m_downloads.end() || i->index != piece);
|
|
||||||
downloading_piece ret;
|
downloading_piece ret;
|
||||||
ret.index = piece;
|
ret.index = piece;
|
||||||
|
std::vector<downloading_piece>::iterator i = std::lower_bound(m_downloads.begin()
|
||||||
|
, m_downloads.end(), ret);
|
||||||
|
TORRENT_ASSERT(i == m_downloads.end() || i->index != piece);
|
||||||
ret.info = &m_block_info[block_index];
|
ret.info = &m_block_info[block_index];
|
||||||
|
TORRENT_ASSERT(ret.info >= &m_block_info[0]);
|
||||||
|
TORRENT_ASSERT(ret.info < &m_block_info[0] + m_block_info.size());
|
||||||
#ifdef TORRENT_USE_VALGRIND
|
#ifdef TORRENT_USE_VALGRIND
|
||||||
VALGRIND_CHECK_VALUE_IS_DEFINED(piece);
|
VALGRIND_CHECK_VALUE_IS_DEFINED(piece);
|
||||||
VALGRIND_CHECK_VALUE_IS_DEFINED(block_index);
|
VALGRIND_CHECK_VALUE_IS_DEFINED(block_index);
|
||||||
|
@ -2254,6 +2256,8 @@ namespace libtorrent
|
||||||
std::vector<downloading_piece>::iterator i = find_dl_piece(block.piece_index);
|
std::vector<downloading_piece>::iterator i = find_dl_piece(block.piece_index);
|
||||||
TORRENT_ASSERT(i != m_downloads.end());
|
TORRENT_ASSERT(i != m_downloads.end());
|
||||||
block_info& info = i->info[block.block_index];
|
block_info& info = i->info[block.block_index];
|
||||||
|
TORRENT_ASSERT(&info >= &m_block_info[0]);
|
||||||
|
TORRENT_ASSERT(&info < &m_block_info[0] + m_block_info.size());
|
||||||
TORRENT_ASSERT(info.piece_index == block.piece_index);
|
TORRENT_ASSERT(info.piece_index == block.piece_index);
|
||||||
if (info.state == block_info::state_writing
|
if (info.state == block_info::state_writing
|
||||||
|| info.state == block_info::state_finished)
|
|| info.state == block_info::state_finished)
|
||||||
|
@ -2288,6 +2292,8 @@ namespace libtorrent
|
||||||
TORRENT_ASSERT(i != m_downloads.end());
|
TORRENT_ASSERT(i != m_downloads.end());
|
||||||
|
|
||||||
block_info const& info = i->info[block.block_index];
|
block_info const& info = i->info[block.block_index];
|
||||||
|
TORRENT_ASSERT(&info >= &m_block_info[0]);
|
||||||
|
TORRENT_ASSERT(&info < &m_block_info[0] + m_block_info.size());
|
||||||
TORRENT_ASSERT(info.piece_index == block.piece_index);
|
TORRENT_ASSERT(info.piece_index == block.piece_index);
|
||||||
return info.num_peers;
|
return info.num_peers;
|
||||||
}
|
}
|
||||||
|
@ -2337,6 +2343,8 @@ namespace libtorrent
|
||||||
downloading_piece& dp = add_download_piece(block.piece_index);
|
downloading_piece& dp = add_download_piece(block.piece_index);
|
||||||
dp.state = none;
|
dp.state = none;
|
||||||
block_info& info = dp.info[block.block_index];
|
block_info& info = dp.info[block.block_index];
|
||||||
|
TORRENT_ASSERT(&info >= &m_block_info[0]);
|
||||||
|
TORRENT_ASSERT(&info < &m_block_info[0] + m_block_info.size());
|
||||||
TORRENT_ASSERT(info.piece_index == block.piece_index);
|
TORRENT_ASSERT(info.piece_index == block.piece_index);
|
||||||
info.state = block_info::state_writing;
|
info.state = block_info::state_writing;
|
||||||
info.peer = peer;
|
info.peer = peer;
|
||||||
|
@ -2351,6 +2359,8 @@ namespace libtorrent
|
||||||
TORRENT_ASSERT(i != m_downloads.end());
|
TORRENT_ASSERT(i != m_downloads.end());
|
||||||
block_info& info = i->info[block.block_index];
|
block_info& info = i->info[block.block_index];
|
||||||
|
|
||||||
|
TORRENT_ASSERT(&info >= &m_block_info[0]);
|
||||||
|
TORRENT_ASSERT(&info < &m_block_info[0] + m_block_info.size());
|
||||||
TORRENT_ASSERT(info.piece_index == block.piece_index);
|
TORRENT_ASSERT(info.piece_index == block.piece_index);
|
||||||
|
|
||||||
info.peer = peer;
|
info.peer = peer;
|
||||||
|
@ -2388,6 +2398,8 @@ namespace libtorrent
|
||||||
if (i == m_downloads.end()) return;
|
if (i == m_downloads.end()) return;
|
||||||
|
|
||||||
block_info& info = i->info[block.block_index];
|
block_info& info = i->info[block.block_index];
|
||||||
|
TORRENT_ASSERT(&info >= &m_block_info[0]);
|
||||||
|
TORRENT_ASSERT(&info < &m_block_info[0] + m_block_info.size());
|
||||||
TORRENT_ASSERT(info.piece_index == block.piece_index);
|
TORRENT_ASSERT(info.piece_index == block.piece_index);
|
||||||
TORRENT_ASSERT(info.state == block_info::state_writing);
|
TORRENT_ASSERT(info.state == block_info::state_writing);
|
||||||
TORRENT_ASSERT(info.num_peers == 0);
|
TORRENT_ASSERT(info.num_peers == 0);
|
||||||
|
@ -2451,6 +2463,8 @@ namespace libtorrent
|
||||||
downloading_piece& dp = add_download_piece(block.piece_index);
|
downloading_piece& dp = add_download_piece(block.piece_index);
|
||||||
dp.state = none;
|
dp.state = none;
|
||||||
block_info& info = dp.info[block.block_index];
|
block_info& info = dp.info[block.block_index];
|
||||||
|
TORRENT_ASSERT(&info >= &m_block_info[0]);
|
||||||
|
TORRENT_ASSERT(&info < &m_block_info[0] + m_block_info.size());
|
||||||
TORRENT_ASSERT(info.piece_index == block.piece_index);
|
TORRENT_ASSERT(info.piece_index == block.piece_index);
|
||||||
info.peer = peer;
|
info.peer = peer;
|
||||||
TORRENT_ASSERT(info.state == block_info::state_none);
|
TORRENT_ASSERT(info.state == block_info::state_none);
|
||||||
|
@ -2471,6 +2485,8 @@ namespace libtorrent
|
||||||
std::vector<downloading_piece>::iterator i = find_dl_piece(block.piece_index);
|
std::vector<downloading_piece>::iterator i = find_dl_piece(block.piece_index);
|
||||||
TORRENT_ASSERT(i != m_downloads.end());
|
TORRENT_ASSERT(i != m_downloads.end());
|
||||||
block_info& info = i->info[block.block_index];
|
block_info& info = i->info[block.block_index];
|
||||||
|
TORRENT_ASSERT(&info >= &m_block_info[0]);
|
||||||
|
TORRENT_ASSERT(&info < &m_block_info[0] + m_block_info.size());
|
||||||
TORRENT_ASSERT(info.piece_index == block.piece_index);
|
TORRENT_ASSERT(info.piece_index == block.piece_index);
|
||||||
|
|
||||||
if (info.state == block_info::state_finished) return;
|
if (info.state == block_info::state_finished) return;
|
||||||
|
@ -2558,6 +2574,8 @@ namespace libtorrent
|
||||||
TORRENT_ASSERT(i != m_downloads.end());
|
TORRENT_ASSERT(i != m_downloads.end());
|
||||||
|
|
||||||
block_info& info = i->info[block.block_index];
|
block_info& info = i->info[block.block_index];
|
||||||
|
TORRENT_ASSERT(&info >= &m_block_info[0]);
|
||||||
|
TORRENT_ASSERT(&info < &m_block_info[0] + m_block_info.size());
|
||||||
TORRENT_ASSERT(info.peer == 0 || static_cast<policy::peer*>(info.peer)->in_use);
|
TORRENT_ASSERT(info.peer == 0 || static_cast<policy::peer*>(info.peer)->in_use);
|
||||||
TORRENT_ASSERT(info.piece_index == block.piece_index);
|
TORRENT_ASSERT(info.piece_index == block.piece_index);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue