Browse Source

Extended the heuristics for obtaining function symbols.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
pull/335/head
Dimitar Dobrev 11 years ago
parent
commit
ca72594c84
  1. 22
      src/AST/SymbolContext.cs

22
src/AST/SymbolContext.cs

@ -87,22 +87,34 @@ namespace CppSharp.AST
if (FindLibraryBySymbol(symbol, out lib)) if (FindLibraryBySymbol(symbol, out lib))
return true; return true;
string alternativeSymbol;
// Check for C symbols with a leading underscore. // Check for C symbols with a leading underscore.
if (FindLibraryBySymbol("_" + symbol, out lib)) alternativeSymbol = "_" + symbol;
if (FindLibraryBySymbol(alternativeSymbol, out lib))
{
symbol = alternativeSymbol;
return true;
}
alternativeSymbol = symbol.TrimStart('_');
if (FindLibraryBySymbol(alternativeSymbol, out lib))
{ {
symbol = "_" + symbol; symbol = alternativeSymbol;
return true; return true;
} }
if (FindLibraryBySymbol("_imp_" + symbol, out lib)) alternativeSymbol = "_imp_" + symbol;
if (FindLibraryBySymbol(alternativeSymbol, out lib))
{ {
symbol = "_imp_" + symbol; symbol = alternativeSymbol;
return true; return true;
} }
alternativeSymbol = "__imp_" + symbol;
if (FindLibraryBySymbol("__imp_" + symbol, out lib)) if (FindLibraryBySymbol("__imp_" + symbol, out lib))
{ {
symbol = "__imp_" + symbol; symbol = alternativeSymbol;
return true; return true;
} }

Loading…
Cancel
Save