Browse Source

Fixed broken class instance check in FunctionToInstanceMethodPass.

Fixes https://github.com/mono/CppSharp/issues/1081.
pull/1139/head
Joao Matos 7 years ago
parent
commit
2a53e079aa
  1. 5
      src/Generator/Passes/FunctionToInstanceMethodPass.cs
  2. 7
      tests/Native/Passes.h

5
src/Generator/Passes/FunctionToInstanceMethodPass.cs

@ -18,6 +18,9 @@ namespace CppSharp.Passes
public override bool VisitFunctionDecl(Function function) public override bool VisitFunctionDecl(Function function)
{ {
if (AlreadyVisited(function))
return false;
if (!function.IsGenerated) if (!function.IsGenerated)
return false; return false;
@ -79,7 +82,7 @@ namespace CppSharp.Passes
if (classParam.Type.IsPointerTo(out tag)) if (classParam.Type.IsPointerTo(out tag))
{ {
@class = tag.Declaration as Class; @class = tag.Declaration as Class;
return true; return @class != null;
} }
return classParam.Type.TryGetClass(out @class); return classParam.Type.TryGetClass(out @class);

7
tests/Native/Passes.h

@ -77,3 +77,10 @@ class ClassWithAbstractOperator
{ {
virtual operator int() = 0; virtual operator int() = 0;
}; };
enum ConnectionRole
{
Role1, Role2
};
bool ConnectionRoleToString(const ConnectionRole& role, const char* role_str);

Loading…
Cancel
Save