diff --git a/src/plugins/bineditor/bineditor.cpp b/src/plugins/bineditor/bineditor.cpp index 656d80b1d3c3f9fe48e6e1c8500784657e5fc8a2..6376eee65583030d1045488975a594ee703c335c 100644 --- a/src/plugins/bineditor/bineditor.cpp +++ b/src/plugins/bineditor/bineditor.cpp @@ -422,8 +422,9 @@ void BinEditor::setLazyData(quint64 startAddr, int range, int blockSize) m_baseAddr = static_cast<quint64>(range/2) > startAddr ? 0 : startAddr - range/2; m_baseAddr = (m_baseAddr / blockSize) * blockSize; - m_size = m_baseAddr != 0 && static_cast<quint64>(range) >= -m_baseAddr - ? -m_baseAddr : range; + const quint64 maxRange = Q_UINT64_C(0xffffffffffffffff) - m_baseAddr + 1; + m_size = m_baseAddr != 0 && static_cast<quint64>(range) >= maxRange + ? maxRange : range; m_addressBytes = (m_baseAddr + m_size < quint64(1) << 32 && m_baseAddr + m_size >= m_baseAddr) ? 4 : 8;