diff options
author | bryner <bryner@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2006-10-16 18:19:09 +0000 |
---|---|---|
committer | bryner <bryner@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2006-10-16 18:19:09 +0000 |
commit | 181f307ffe521026d7344ed58d1545321d352ca6 (patch) | |
tree | 95d95a48031f8fd4a7b32e585838782b54b3206f /src/processor/stackwalker.cc | |
parent | Implement a tool to upload symbols on Windows, given an exe or dll file with (diff) | |
download | breakpad-181f307ffe521026d7344ed58d1545321d352ca6.tar.xz |
Reduce calls to SymbolSupplier::GetSymbolFile() (#48).
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@40 4c0a9323-5329-0410-9bdc-e9ce6186880e
Diffstat (limited to 'src/processor/stackwalker.cc')
-rw-r--r-- | src/processor/stackwalker.cc | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/processor/stackwalker.cc b/src/processor/stackwalker.cc index 2f74e924..e5c79cc2 100644 --- a/src/processor/stackwalker.cc +++ b/src/processor/stackwalker.cc @@ -78,14 +78,13 @@ void Stackwalker::Walk(StackFrames *frames) { if (module) { frame->module_name = *(module->GetName()); frame->module_base = module->base_address(); - if (modules_ && supplier_) { - string symbol_file = - supplier_->GetSymbolFile(module); + if (!resolver.HasModule(frame->module_name) && supplier_) { + string symbol_file = supplier_->GetSymbolFile(module); if (!symbol_file.empty()) { - resolver.LoadModule(*(module->GetName()), symbol_file); - resolver.FillSourceLineInfo(frame.get(), frame_info.get()); + resolver.LoadModule(frame->module_name, symbol_file); } } + resolver.FillSourceLineInfo(frame.get(), frame_info.get()); } } |