Skip to content

Commit

Permalink
Symtab: Remove one copy of symbol size computation code
Browse files Browse the repository at this point in the history
Summary:
The implementation in CalculateSymbolSizes has been made redundant in
D19004, as this patch added another copy of size computation code into
InitAddressIndexes (which is called by CalculateSymbolSizes).

Reviewers: clayborg, jasonmolenda, tberghammer

Subscribers: lldb-commits

Differential Revision: https://reviews.llvm.org/D56132

llvm-svn: 350384
  • Loading branch information
labath committed Jan 4, 2019
1 parent 1a9ab6a commit 232ab01
Showing 1 changed file with 2 additions and 26 deletions.
28 changes: 2 additions & 26 deletions lldb/source/Symbol/Symtab.cpp
Expand Up @@ -976,32 +976,8 @@ void Symtab::InitAddressIndexes() {

void Symtab::CalculateSymbolSizes() {
std::lock_guard<std::recursive_mutex> guard(m_mutex);

if (!m_symbols.empty()) {
if (!m_file_addr_to_index_computed)
InitAddressIndexes();

const size_t num_entries = m_file_addr_to_index.GetSize();

for (size_t i = 0; i < num_entries; ++i) {
// The entries in the m_file_addr_to_index have calculated the sizes
// already so we will use this size if we need to.
const FileRangeToIndexMap::Entry &entry =
m_file_addr_to_index.GetEntryRef(i);

Symbol &symbol = m_symbols[entry.data];

// If the symbol size is already valid, no need to do anything
if (symbol.GetByteSizeIsValid())
continue;

const addr_t range_size = entry.GetByteSize();
if (range_size > 0) {
symbol.SetByteSize(range_size);
symbol.SetSizeIsSynthesized(true);
}
}
}
// Size computation happens inside InitAddressIndexes.
InitAddressIndexes();
}

Symbol *Symtab::FindSymbolAtFileAddress(addr_t file_addr) {
Expand Down

0 comments on commit 232ab01

Please sign in to comment.