diff --git a/src/piece_picker.cpp b/src/piece_picker.cpp index f642d3f13..c751e2523 100644 --- a/src/piece_picker.cpp +++ b/src/piece_picker.cpp @@ -2174,6 +2174,10 @@ namespace libtorrent bool piece_picker::is_requested(piece_block block) const { +#ifdef TORRENT_USE_VALGRIND + VALGRIND_CHECK_VALUE_IS_DEFINED(block.block_index); + VALGRIND_CHECK_VALUE_IS_DEFINED(block.piece_index); +#endif TORRENT_ASSERT(block.block_index != piece_block::invalid.block_index); TORRENT_ASSERT(block.piece_index != piece_block::invalid.piece_index); TORRENT_ASSERT(block.piece_index < m_piece_map.size()); @@ -2188,6 +2192,10 @@ namespace libtorrent bool piece_picker::is_downloaded(piece_block block) const { +#ifdef TORRENT_USE_VALGRIND + VALGRIND_CHECK_VALUE_IS_DEFINED(block.block_index); + VALGRIND_CHECK_VALUE_IS_DEFINED(block.piece_index); +#endif TORRENT_ASSERT(block.block_index != piece_block::invalid.block_index); TORRENT_ASSERT(block.piece_index != piece_block::invalid.piece_index); TORRENT_ASSERT(block.piece_index < m_piece_map.size()); @@ -2203,12 +2211,17 @@ namespace libtorrent bool piece_picker::is_finished(piece_block block) const { +#ifdef TORRENT_USE_VALGRIND + VALGRIND_CHECK_VALUE_IS_DEFINED(block.block_index); + VALGRIND_CHECK_VALUE_IS_DEFINED(block.piece_index); +#endif TORRENT_ASSERT(block.block_index != piece_block::invalid.block_index); TORRENT_ASSERT(block.piece_index != piece_block::invalid.piece_index); TORRENT_ASSERT(block.piece_index < m_piece_map.size()); - if (m_piece_map[block.piece_index].index == piece_pos::we_have_index) return true; - if (m_piece_map[block.piece_index].downloading == 0) return false; + piece_pos const& p = m_piece_map[block.piece_index]; + if (p.index == piece_pos::we_have_index) return true; + if (p.downloading == 0) return false; std::vector::const_iterator i = find_dl_piece(block.piece_index); TORRENT_ASSERT(i != m_downloads.end()); TORRENT_ASSERT(i->info[block.block_index].piece_index == block.piece_index);