|
|
|
@ -1,5 +1,4 @@
@@ -1,5 +1,4 @@
|
|
|
|
|
using System.Linq; |
|
|
|
|
using CppSharp.AST; |
|
|
|
|
using CppSharp.AST; |
|
|
|
|
|
|
|
|
|
namespace CppSharp.Passes |
|
|
|
|
{ |
|
|
|
@ -29,7 +28,7 @@ namespace CppSharp.Passes
@@ -29,7 +28,7 @@ namespace CppSharp.Passes
|
|
|
|
|
if (!base.VisitClassDecl(@class)) |
|
|
|
|
return false; |
|
|
|
|
|
|
|
|
|
if (HasFieldsOrVirtuals(@class)) |
|
|
|
|
if (@class.IsDependent || @class.Layout.Fields.Count > 0) |
|
|
|
|
return false; |
|
|
|
|
|
|
|
|
|
@class.Layout.Size = @class.Layout.DataSize = 0; |
|
|
|
@ -82,13 +81,5 @@ namespace CppSharp.Passes
@@ -82,13 +81,5 @@ namespace CppSharp.Passes
|
|
|
|
|
|
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private static bool HasFieldsOrVirtuals(Class @class) |
|
|
|
|
{ |
|
|
|
|
if (@class.Fields.Count > 0 || @class.IsDynamic) |
|
|
|
|
return true; |
|
|
|
|
return @class.Bases.Any(@base => @base.IsClass && @base.Class != @class && |
|
|
|
|
HasFieldsOrVirtuals(@base.Class)); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|