tools: avoid use of std::function

Remove the use of the std::function and replace the capturing lambda with a
non-capturing one, opting to pass the user data down to the context.  This is
needed as std::function is not yet available on all hosted platforms (it
requires RTTI, which breaks on Windows).

Thanks to Nico Rieck for pointing this out!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209607 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Saleem Abdulrasool
2014-05-25 21:37:59 +00:00
parent b6a667f033
commit d29bdc72bb
3 changed files with 14 additions and 12 deletions

View File

@ -849,11 +849,12 @@ void COFFDumper::printUnwindInfo() {
case COFF::IMAGE_FILE_MACHINE_AMD64: {
Win64EH::Dumper Dumper(W);
Win64EH::Dumper::SymbolResolver Resolver =
[this](const object::coff_section *Section, uint64_t Offset,
SymbolRef &Symbol) -> error_code {
return this->resolveSymbol(Section, Offset, Symbol);
[](const object::coff_section *Section, uint64_t Offset,
SymbolRef &Symbol, void *user_data) -> error_code {
COFFDumper *Dumper = reinterpret_cast<COFFDumper*>(user_data);
return Dumper->resolveSymbol(Section, Offset, Symbol);
};
Win64EH::Dumper::Context Ctx(*Obj, Resolver);
Win64EH::Dumper::Context Ctx(*Obj, Resolver, this);
Dumper.printData(Ctx);
break;
}