Browse Source

Fixed wrong recording of declaration order (#816)

This is a bugfix for critical bug. With the fix the generation of the parser bindings should be nearly correct.

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
pull/614/merge 0.8.9
realvictorprm 8 years ago committed by Dimitar Dobrev
parent
commit
936d2231a7
  1. 11822
      src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs
  2. 12322
      src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs
  3. 11810
      src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs
  4. 11824
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs
  5. 11818
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs
  6. 11870
      src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs
  7. 2
      src/CppParser/Parser.cpp
  8. 3
      src/Generator/Passes/RenamePass.cs

11822
src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs

File diff suppressed because it is too large Load Diff

12322
src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs

File diff suppressed because it is too large Load Diff

11810
src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs

File diff suppressed because it is too large Load Diff

11824
src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs

File diff suppressed because it is too large Load Diff

11818
src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs

File diff suppressed because it is too large Load Diff

11870
src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs

File diff suppressed because it is too large Load Diff

2
src/CppParser/Parser.cpp

@ -3547,7 +3547,7 @@ Declaration* Parser::WalkDeclaration(const clang::Decl* D,
if (WalkRedecls) if (WalkRedecls)
for (auto redecl : RD->redecls()) for (auto redecl : RD->redecls())
Class->Redeclarations.push_back(WalkDeclaration(redecl, CanBeDefinition, false)); Class->Redeclarations.push_back(WalkDeclaration(redecl, false, false));
// We store a definition order index into the declarations. // We store a definition order index into the declarations.
// This is needed because declarations are added to their contexts as // This is needed because declarations are added to their contexts as

3
src/Generator/Passes/RenamePass.cs

@ -218,8 +218,7 @@ namespace CppSharp.Passes
public override bool VisitClassDecl(Class @class) public override bool VisitClassDecl(Class @class)
{ {
if (!base.VisitClassDecl(@class)) base.VisitClassDecl(@class);
return false;
foreach (var property in @class.Properties.OrderByDescending(p => p.Access)) foreach (var property in @class.Properties.OrderByDescending(p => p.Access))
VisitProperty(property); VisitProperty(property);

Loading…
Cancel
Save