fix the off-by-one errors in file_storage as well as a NULL conversion warning (typo)

This commit is contained in:
Arvid Norberg 2013-03-17 22:05:09 +00:00
parent 56e4c48873
commit 92cedf82cf
1 changed files with 3 additions and 3 deletions

View File

@ -421,7 +421,7 @@ namespace libtorrent
void file_storage::set_file_base(int index, size_type off) void file_storage::set_file_base(int index, size_type off)
{ {
TORRENT_ASSERT(index >= 0 && index < int(m_files.size())); TORRENT_ASSERT(index >= 0 && index < int(m_files.size()));
if (int(m_file_base.size()) <= index) m_file_base.resize(index); if (int(m_file_base.size()) <= index) m_file_base.resize(index + 1, 0);
m_file_base[index] = off; m_file_base[index] = off;
} }
@ -496,7 +496,7 @@ namespace libtorrent
{ {
int index = &fe - &m_files[0]; int index = &fe - &m_files[0];
TORRENT_ASSERT(index >= 0 && index < int(m_files.size())); TORRENT_ASSERT(index >= 0 && index < int(m_files.size()));
if (int(m_file_base.size()) <= index) m_file_base.resize(index); if (int(m_file_base.size()) <= index) m_file_base.resize(index + 1, 0);
m_file_base[index] = off; m_file_base[index] = off;
} }
@ -559,7 +559,7 @@ namespace libtorrent
if (!m_file_base.empty()) if (!m_file_base.empty())
{ {
TORRENT_ASSERT(m_file_base.size() == m_files.size()); TORRENT_ASSERT(m_file_base.size() == m_files.size());
if (int(m_file_base.size()) < index) m_file_base.resize(index + 1, NULL); if (int(m_file_base.size()) < index) m_file_base.resize(index + 1, 0);
std::iter_swap(m_file_base.begin() + dst, m_file_base.begin() + index); std::iter_swap(m_file_base.begin() + dst, m_file_base.begin() + index);
} }
} }