Debugger: Make disassembler caching smarter.

Check if address is contained in range of lines.

Task-number: QTCREATORBUG-5205
Change-Id: I12a4f2f2f3837e164fd093e80fb427e9234136af
Reviewed-on: http://codereview.qt.nokia.com/1017
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
This commit is contained in:
Friedemann Kleint
2011-07-01 16:57:17 +02:00
parent 53295db969
commit b3812bf94f
4 changed files with 100 additions and 25 deletions

View File

@@ -80,6 +80,22 @@ quint64 DisassemblerLine::addressFromDisassemblyLine(const QString &line)
return l.address;
}
quint64 DisassemblerLines::startAddress() const
{
for (int i = 0; i < m_data.size(); ++i)
if (m_data.at(i).address)
return m_data.at(i).address;
return 0;
}
quint64 DisassemblerLines::endAddress() const
{
for (int i = m_data.size()- 1; i >= 0; --i)
if (m_data.at(i).address)
return m_data.at(i).address;
return 0;
}
int DisassemblerLines::lineForAddress(quint64 address) const
{
return m_rowCache.value(address);