forked from premiere/premiere-libtorrent
sync. creation and clearing of file progress with the piece picker
This commit is contained in:
parent
e40bdc566c
commit
dbd734e7a2
|
@ -818,8 +818,6 @@ namespace libtorrent
|
||||||
|
|
||||||
update_gauge();
|
update_gauge();
|
||||||
|
|
||||||
m_file_progress.clear();
|
|
||||||
|
|
||||||
if (m_resume_data)
|
if (m_resume_data)
|
||||||
{
|
{
|
||||||
int pos;
|
int pos;
|
||||||
|
@ -2632,11 +2630,11 @@ namespace libtorrent
|
||||||
int blocks_in_last_piece = ((m_torrent_file->total_size() % m_torrent_file->piece_length())
|
int blocks_in_last_piece = ((m_torrent_file->total_size() % m_torrent_file->piece_length())
|
||||||
+ block_size() - 1) / block_size();
|
+ block_size() - 1) / block_size();
|
||||||
m_picker->init(blocks_per_piece, blocks_in_last_piece, m_torrent_file->num_pieces());
|
m_picker->init(blocks_per_piece, blocks_in_last_piece, m_torrent_file->num_pieces());
|
||||||
|
|
||||||
|
m_file_progress.clear();
|
||||||
|
m_file_progress.init(picker(), m_torrent_file->files());
|
||||||
}
|
}
|
||||||
|
|
||||||
// file progress is allocated lazily, the first time the client
|
|
||||||
// asks for it
|
|
||||||
m_file_progress.clear();
|
|
||||||
|
|
||||||
// assume that we don't have anything
|
// assume that we don't have anything
|
||||||
m_files_checked = false;
|
m_files_checked = false;
|
||||||
|
@ -8621,6 +8619,7 @@ namespace libtorrent
|
||||||
m_picker.reset();
|
m_picker.reset();
|
||||||
m_have_all = true;
|
m_have_all = true;
|
||||||
update_gauge();
|
update_gauge();
|
||||||
|
m_file_progress.clear();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8633,9 +8632,6 @@ namespace libtorrent
|
||||||
set_state(torrent_status::seeding);
|
set_state(torrent_status::seeding);
|
||||||
m_became_seed = m_ses.session_time();
|
m_became_seed = m_ses.session_time();
|
||||||
|
|
||||||
// no need for this anymore
|
|
||||||
m_file_progress.clear();
|
|
||||||
|
|
||||||
if (!m_announcing) return;
|
if (!m_announcing) return;
|
||||||
|
|
||||||
time_point now = aux::time_now();
|
time_point now = aux::time_now();
|
||||||
|
@ -8965,6 +8961,10 @@ namespace libtorrent
|
||||||
#if TORRENT_USE_INVARIANT_CHECKS
|
#if TORRENT_USE_INVARIANT_CHECKS
|
||||||
void torrent::check_invariant() const
|
void torrent::check_invariant() const
|
||||||
{
|
{
|
||||||
|
// the piece picker and the file progress states are supposed to be
|
||||||
|
// created in sync
|
||||||
|
TORRENT_ASSERT(has_picker() == !m_file_progress.empty());
|
||||||
|
|
||||||
TORRENT_ASSERT(current_stats_state() == m_current_gauge_state + counters::num_checking_torrents
|
TORRENT_ASSERT(current_stats_state() == m_current_gauge_state + counters::num_checking_torrents
|
||||||
|| m_current_gauge_state == no_gauge_state);
|
|| m_current_gauge_state == no_gauge_state);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue