Don't seek at the end for each top-level element

Rather use the previously determined file size to
determine the max element size.
This commit is contained in:
Martchus 2017-08-17 20:05:32 +02:00
parent 21dc376ad1
commit fb3702e311
2 changed files with 2 additions and 3 deletions

View File

@ -61,7 +61,7 @@ void BasicFileInfo::reopen(bool readOnly)
invalidated();
m_file.open(m_path, (m_readOnly = readOnly) ? ios_base::in | ios_base::binary : ios_base::in | ios_base::out | ios_base::binary);
m_file.seekg(0, ios_base::end);
m_size = m_file.tellg();
m_size = static_cast<uint64>(m_file.tellg());
m_file.seekg(0, ios_base::beg);
}

View File

@ -230,8 +230,7 @@ GenericFileElement<ImplementationType>::GenericFileElement(GenericFileElement<Im
m_container(&container),
m_parsed(false)
{
stream().seekg(0, std::ios_base::end);
m_maxSize = static_cast<uint64>(stream().tellg());
m_maxSize = container.fileInfo().size();
if(m_maxSize > startOffset) {
m_maxSize -= startOffset;
stream().seekg(startOffset, std::ios_base::beg);