aboutsummaryrefslogtreecommitdiff
path: root/src/processor/stackwalker.cc
diff options
context:
space:
mode:
authornealsid <nealsid@4c0a9323-5329-0410-9bdc-e9ce6186880e>2009-02-19 21:26:20 +0000
committernealsid <nealsid@4c0a9323-5329-0410-9bdc-e9ce6186880e>2009-02-19 21:26:20 +0000
commit0fd2f1ae2152782f2127c56fb5302002c95502d3 (patch)
tree021783dc670766ed1781eb79fde45c30fb55a964 /src/processor/stackwalker.cc
parentIssue 275: patch to include list of loaded modules in crash_report output (diff)
downloadbreakpad-0fd2f1ae2152782f2127c56fb5302002c95502d3.tar.xz
Modify symbol supplier interface to support an overload that takes a symbol data buffer, to get around an extraneous read/write of symbol data
R=doshimun git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@311 4c0a9323-5329-0410-9bdc-e9ce6186880e
Diffstat (limited to 'src/processor/stackwalker.cc')
-rw-r--r--src/processor/stackwalker.cc8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/processor/stackwalker.cc b/src/processor/stackwalker.cc
index cdb0ce52..de67bdaa 100644
--- a/src/processor/stackwalker.cc
+++ b/src/processor/stackwalker.cc
@@ -101,13 +101,15 @@ bool Stackwalker::Walk(CallStack *stack) {
if (resolver_ &&
!resolver_->HasModule(frame->module->code_file()) &&
supplier_) {
- string symbol_file;
+ string symbol_data, symbol_file;
SymbolSupplier::SymbolResult symbol_result =
- supplier_->GetSymbolFile(module, system_info_, &symbol_file);
+ supplier_->GetSymbolFile(module, system_info_,
+ &symbol_file, &symbol_data);
switch (symbol_result) {
case SymbolSupplier::FOUND:
- resolver_->LoadModule(frame->module->code_file(), symbol_file);
+ resolver_->LoadModuleUsingMapBuffer(frame->module->code_file(),
+ symbol_data);
break;
case SymbolSupplier::NOT_FOUND:
break; // nothing to do