Browse Source

Merge pull request #335 from ddobrev/master

Extended the heuristics for obtaining function symbols
pull/338/head
João Matos 11 years ago
parent
commit
de1f21339b
  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