1
0
mirror of https://github.com/d47081/qBittorrent.git synced 2025-01-11 07:18:08 +00:00

Cache pieces info

PR #16238.
This commit is contained in:
Vladimir Golovnev 2022-01-25 06:05:16 +03:00 committed by GitHub
parent 0cc318664d
commit 26352c9eb4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 6 deletions

View File

@ -44,7 +44,6 @@
#include <libtorrent/info_hash.hpp>
#endif
#include <QBitArray>
#include <QDebug>
#include <QDir>
#include <QFile>
@ -1250,13 +1249,17 @@ QVector<PeerInfo> TorrentImpl::peers() const
QBitArray TorrentImpl::pieces() const
{
QBitArray result(m_nativeStatus.pieces.size());
for (int i = 0; i < result.size(); ++i)
if (m_pieces.isEmpty())
{
if (m_nativeStatus.pieces[lt::piece_index_t {i}])
result.setBit(i, true);
m_pieces.resize(m_nativeStatus.pieces.size());
for (int i = 0; i < m_pieces.size(); ++i)
{
if (m_nativeStatus.pieces[lt::piece_index_t(i)])
m_pieces.setBit(i, true);
}
}
return result;
return m_pieces;
}
QBitArray TorrentImpl::downloadingPieces() const
@ -2094,6 +2097,7 @@ void TorrentImpl::updateStatus()
void TorrentImpl::updateStatus(const lt::torrent_status &nativeStatus)
{
m_pieces.clear();
m_nativeStatus = nativeStatus;
updateState();

View File

@ -37,6 +37,7 @@
#include <libtorrent/torrent_handle.hpp>
#include <libtorrent/torrent_status.hpp>
#include <QBitArray>
#include <QDateTime>
#include <QHash>
#include <QMap>
@ -320,5 +321,7 @@ namespace BitTorrent
bool m_unchecked = false;
lt::add_torrent_params m_ltAddTorrentParams;
mutable QBitArray m_pieces;
};
}