forked from premiere/premiere-libtorrent
merge bitfield issue fix from RC_0_16
This commit is contained in:
parent
3e5ab73127
commit
6d07af3b57
|
@ -54,6 +54,7 @@
|
||||||
* fix uTP edge case where udp socket buffer fills up
|
* fix uTP edge case where udp socket buffer fills up
|
||||||
* fix nagle implementation in uTP
|
* fix nagle implementation in uTP
|
||||||
|
|
||||||
|
* fix bitfield issue in file_storage
|
||||||
* added work-around for MingW issue in file I/O
|
* added work-around for MingW issue in file I/O
|
||||||
* fixed sparse file detection on windows
|
* fixed sparse file detection on windows
|
||||||
* fixed bug in gunzip
|
* fixed bug in gunzip
|
||||||
|
|
|
@ -119,6 +119,7 @@ namespace libtorrent
|
||||||
// for torrent_info::invariant_check
|
// for torrent_info::invariant_check
|
||||||
friend class torrent_info;
|
friend class torrent_info;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
internal_file_entry()
|
internal_file_entry()
|
||||||
: offset(0)
|
: offset(0)
|
||||||
, symlink_index(not_a_symlink)
|
, symlink_index(not_a_symlink)
|
||||||
|
|
|
@ -329,7 +329,7 @@ namespace libtorrent
|
||||||
file_slice f;
|
file_slice f;
|
||||||
f.file_index = file_iter - m_files.begin();
|
f.file_index = file_iter - m_files.begin();
|
||||||
f.offset = file_offset + file_base(f.file_index);
|
f.offset = file_offset + file_base(f.file_index);
|
||||||
f.size = (std::min)(size_type(file_iter->size) - file_offset, (size_type)size);
|
f.size = (std::min)(boost::uint64_t(file_iter->size) - file_offset, boost::uint64_t(size));
|
||||||
TORRENT_ASSERT(f.size <= size);
|
TORRENT_ASSERT(f.size <= size);
|
||||||
size -= int(f.size);
|
size -= int(f.size);
|
||||||
file_offset += f.size;
|
file_offset += f.size;
|
||||||
|
@ -426,7 +426,7 @@ namespace libtorrent
|
||||||
e.hidden_attribute = (flags & attribute_hidden) != 0;
|
e.hidden_attribute = (flags & attribute_hidden) != 0;
|
||||||
e.executable_attribute = (flags & attribute_executable) != 0;
|
e.executable_attribute = (flags & attribute_executable) != 0;
|
||||||
e.symlink_attribute = (flags & attribute_symlink) != 0;
|
e.symlink_attribute = (flags & attribute_symlink) != 0;
|
||||||
if (e.symlink_attribute)
|
if (e.symlink_attribute && m_symlinks.size() < internal_file_entry::not_a_symlink - 1)
|
||||||
{
|
{
|
||||||
e.symlink_index = m_symlinks.size();
|
e.symlink_index = m_symlinks.size();
|
||||||
m_symlinks.push_back(symlink_path);
|
m_symlinks.push_back(symlink_path);
|
||||||
|
@ -469,7 +469,7 @@ namespace libtorrent
|
||||||
if (m_file_hashes.size() < m_files.size()) m_file_hashes.resize(m_files.size());
|
if (m_file_hashes.size() < m_files.size()) m_file_hashes.resize(m_files.size());
|
||||||
m_file_hashes[m_files.size() - 1] = filehash;
|
m_file_hashes[m_files.size() - 1] = filehash;
|
||||||
}
|
}
|
||||||
if (!ent.symlink_path.empty())
|
if (!ent.symlink_path.empty() && m_symlinks.size() < internal_file_entry::not_a_symlink - 1)
|
||||||
{
|
{
|
||||||
e.symlink_index = m_symlinks.size();
|
e.symlink_index = m_symlinks.size();
|
||||||
m_symlinks.push_back(ent.symlink_path);
|
m_symlinks.push_back(ent.symlink_path);
|
||||||
|
|
|
@ -3142,7 +3142,7 @@ namespace libtorrent
|
||||||
size_type file_offset = off - fs.file_offset(file_index);
|
size_type file_offset = off - fs.file_offset(file_index);
|
||||||
TORRENT_ASSERT(file_index != fs.num_files());
|
TORRENT_ASSERT(file_index != fs.num_files());
|
||||||
TORRENT_ASSERT(file_offset <= fs.file_size(file_index));
|
TORRENT_ASSERT(file_offset <= fs.file_size(file_index));
|
||||||
int add = (std::min)(fs.file_size(file_index) - file_offset, (size_type)size);
|
int add = (std::min)(fs.file_size(file_index) - file_offset, size_type(size));
|
||||||
m_file_progress[file_index] += add;
|
m_file_progress[file_index] += add;
|
||||||
|
|
||||||
TORRENT_ASSERT(m_file_progress[file_index]
|
TORRENT_ASSERT(m_file_progress[file_index]
|
||||||
|
|
Loading…
Reference in New Issue