Browse Source

Merge pull request #171 from ddobrev/master

Fixed the ignoring of methods
pull/172/merge
João Matos 12 years ago
parent
commit
e439c519bc
  1. 11
      src/Generator.Tests/Passes/TestPasses.cs
  2. 10
      src/Generator/Library.cs
  3. 5
      tests/Native/Passes.h

11
src/Generator.Tests/Passes/TestPasses.cs

@ -1,4 +1,5 @@
using CppSharp.Passes; using System.Linq;
using CppSharp.Passes;
using NUnit.Framework; using NUnit.Framework;
namespace CppSharp.Generator.Tests.Passes namespace CppSharp.Generator.Tests.Passes
@ -99,5 +100,13 @@ namespace CppSharp.Generator.Tests.Passes
{ {
} }
[Test]
public void TestIgnoringMethod()
{
AstContext.IgnoreClassMethodWithName("Foo", "toIgnore");
Assert.IsTrue(AstContext.FindClass("Foo").First().Methods.Find(
m => m.Name == "toIgnore").ExplicityIgnored);
}
} }
} }

10
src/Generator/Library.cs

@ -275,13 +275,11 @@ namespace CppSharp
public static void IgnoreClassMethodWithName(this ASTContext context, string className, public static void IgnoreClassMethodWithName(this ASTContext context, string className,
string name) string name)
{ {
foreach (var @class in context.FindClass(name)) foreach (var method in from @class in context.FindClass(className)
from method in @class.Methods
where method.Name == name
select method)
{ {
var method = @class.Methods.Find(m => m.Name == name);
if (method == null)
return;
method.ExplicityIgnored = true; method.ExplicityIgnored = true;
} }
} }

5
tests/Native/Passes.h

@ -14,7 +14,10 @@ enum FlagEnum2
D1 = 1 << 4, D1 = 1 << 4,
}; };
class Foo { }; class Foo
{
void toIgnore() { }
};
void FooStart(Foo*, int); void FooStart(Foo*, int);
struct TestRename struct TestRename

Loading…
Cancel
Save