Call UpdateActiveSymbols only once from MIPSAnalyst instead of for every recognized function.

Reduces startup slowdown when using a function signature file drastically.
This commit is contained in:
Henrik Rydgård 2014-02-11 11:21:56 +01:00
parent db21aeb7f7
commit b1d6eefb8a
3 changed files with 8 additions and 2 deletions

View file

@ -738,7 +738,10 @@ void SymbolMap::SetLabelName(const char* name, u32 address) {
if (label != labels.end()) {
strcpy(label->second.name,name);
label->second.name[127] = 0;
UpdateActiveSymbols();
// Do we really need to call this here? Causes extreme startup slowdown
// as this gets called for every function identified by the function replacement code.
// UpdateActiveSymbols();
}
}
}

View file

@ -108,9 +108,10 @@ public:
static const u32 INVALID_ADDRESS = (u32)-1;
void UpdateActiveSymbols();
private:
void AssignFunctionIndices();
void UpdateActiveSymbols();
const char *GetLabelName(u32 address) const;
const char *GetLabelNameRel(u32 relAddress, int moduleIndex) const;

View file

@ -646,6 +646,8 @@ skip:
}
}
}
// Used to be called in SetLabelName, let's call it only once instead.
symbolMap.UpdateActiveSymbols();
}
void LoadHashMap(std::string filename) {