Browse Source

Fixed the assigment of structs with private fields.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
pull/398/head
Dimitar Dobrev 11 years ago
parent
commit
c7253b456b
  1. 13
      src/AST/ClassExtensions.cs
  2. 780
      src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/AST.cs
  3. 84
      src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppParser.cs
  4. 40
      src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/Sources.cs
  5. 228
      src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/Target.cs
  6. 780
      src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/AST.cs
  7. 84
      src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppParser.cs
  8. 40
      src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/Sources.cs
  9. 228
      src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/Target.cs
  10. 780
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu/AST.cs
  11. 84
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppParser.cs
  12. 40
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu/Sources.cs
  13. 228
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu/Target.cs
  14. 7
      src/Generator/Generators/CLI/CLIGenerator.cs
  15. 4
      src/Generator/Generators/CLI/CLIHeadersTemplate.cs
  16. 6
      src/Generator/Generators/CLI/CLISourcesTemplate.cs
  17. 7
      src/Generator/Generators/CSharp/CSharpMarshal.cs
  18. 284
      src/Generator/Generators/CSharp/CSharpTextTemplate.cs
  19. 8
      tests/CSharpTemp/CSharpTemp.Tests.cs
  20. 16
      tests/CSharpTemp/CSharpTemp.cpp
  21. 1
      tests/CSharpTemp/CSharpTemp.cs
  22. 13
      tests/CSharpTemp/CSharpTemp.h

13
src/AST/ClassExtensions.cs

@ -126,5 +126,18 @@ namespace CppSharp.AST
} }
return null; return null;
} }
public static bool HasRefBase(this Class @class)
{
Class baseClass = null;
if (@class.HasBaseClass)
baseClass = @class.Bases[0].Class;
var hasRefBase = baseClass != null && baseClass.IsRefType
&& baseClass.IsDeclared;
return hasRefBase;
}
} }
} }

780
src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/AST.cs

File diff suppressed because it is too large Load Diff

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

@ -490,14 +490,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return (((Internal*) __Instance)->ASTContext == IntPtr.Zero) ? null : CppSharp.Parser.AST.ASTContext.__CreateInstance(((Internal*) __Instance)->ASTContext);
return (__ptr->ASTContext == IntPtr.Zero) ? null : CppSharp.Parser.AST.ASTContext.__CreateInstance(__ptr->ASTContext);
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->ASTContext = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
__ptr->ASTContext = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
} }
} }
@ -505,14 +503,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->ToolSetToUse;
return __ptr->ToolSetToUse;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->ToolSetToUse = value;
__ptr->ToolSetToUse = value;
} }
} }
@ -520,14 +516,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->Abi;
return __ptr->Abi;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->Abi = value;
__ptr->Abi = value;
} }
} }
@ -535,14 +529,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->NoStandardIncludes;
return __ptr->NoStandardIncludes;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->NoStandardIncludes = value;
__ptr->NoStandardIncludes = value;
} }
} }
@ -550,14 +542,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->NoBuiltinIncludes;
return __ptr->NoBuiltinIncludes;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->NoBuiltinIncludes = value;
__ptr->NoBuiltinIncludes = value;
} }
} }
@ -565,14 +555,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->MicrosoftMode;
return __ptr->MicrosoftMode;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->MicrosoftMode = value;
__ptr->MicrosoftMode = value;
} }
} }
@ -580,14 +568,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->Verbose;
return __ptr->Verbose;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->Verbose = value;
__ptr->Verbose = value;
} }
} }
@ -595,14 +581,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->LanguageVersion;
return __ptr->LanguageVersion;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->LanguageVersion = value;
__ptr->LanguageVersion = value;
} }
} }
} }
@ -749,14 +733,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->Level;
return __ptr->Level;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->Level = value;
__ptr->Level = value;
} }
} }
@ -764,14 +746,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->LineNumber;
return __ptr->LineNumber;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->LineNumber = value;
__ptr->LineNumber = value;
} }
} }
@ -779,14 +759,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->ColumnNumber;
return __ptr->ColumnNumber;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->ColumnNumber = value;
__ptr->ColumnNumber = value;
} }
} }
} }
@ -929,14 +907,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->Kind;
return __ptr->Kind;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->Kind = value;
__ptr->Kind = value;
} }
} }
@ -944,14 +920,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return (((Internal*) __Instance)->ASTContext == IntPtr.Zero) ? null : CppSharp.Parser.AST.ASTContext.__CreateInstance(((Internal*) __Instance)->ASTContext);
return (__ptr->ASTContext == IntPtr.Zero) ? null : CppSharp.Parser.AST.ASTContext.__CreateInstance(__ptr->ASTContext);
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->ASTContext = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
__ptr->ASTContext = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
} }
} }
@ -959,14 +933,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return (((Internal*) __Instance)->Library == IntPtr.Zero) ? null : CppSharp.Parser.AST.NativeLibrary.__CreateInstance(((Internal*) __Instance)->Library);
return (__ptr->Library == IntPtr.Zero) ? null : CppSharp.Parser.AST.NativeLibrary.__CreateInstance(__ptr->Library);
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->Library = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
__ptr->Library = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
} }
} }
} }

40
src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/Sources.cs

@ -34,6 +34,9 @@ namespace CppSharp
internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0);
} }
private SourceLocation.Internal __instance;
public SourceLocation.Internal __Instance { get { return __instance; } }
public static SourceLocation __CreateInstance(global::System.IntPtr native) public static SourceLocation __CreateInstance(global::System.IntPtr native)
{ {
return new SourceLocation((SourceLocation.Internal*) native); return new SourceLocation((SourceLocation.Internal*) native);
@ -45,43 +48,36 @@ namespace CppSharp
} }
private SourceLocation(SourceLocation.Internal native) private SourceLocation(SourceLocation.Internal native)
: this(&native) : this()
{ {
__instance = native;
} }
private SourceLocation(SourceLocation.Internal* native, bool isInternalImpl = false) : this() private SourceLocation(SourceLocation.Internal* native, bool isInternalImpl = false) : this()
{ {
var __ptr = native; __instance = *native;
ID = __ptr->ID;
}
internal Internal ToInternal()
{
var __native = new CppSharp.Parser.SourceLocation.Internal();
var __ptr = &__native;
__native.ID = ID;
return __native;
}
internal void FromInternal(Internal* native)
{
var __ptr = native;
ID = __ptr->ID;
} }
public SourceLocation(uint ID) public SourceLocation(uint ID)
: this() : this()
{ {
var __fixedInstance = ToInternal(); fixed (Internal* __instancePtr = &__instance)
Internal.ctor_1(new global::System.IntPtr(&__fixedInstance), ID); {
FromInternal(&__fixedInstance); Internal.ctor_1(new global::System.IntPtr(__instancePtr), ID);
}
} }
public uint ID public uint ID
{ {
get; get
{
return __instance.ID;
}
set; set
{
__instance.ID = value;
}
} }
} }
} }

228
src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/Target.cs

@ -245,14 +245,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->Char16Type;
return __ptr->Char16Type;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->Char16Type = value;
__ptr->Char16Type = value;
} }
} }
@ -260,14 +258,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->Char32Type;
return __ptr->Char32Type;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->Char32Type = value;
__ptr->Char32Type = value;
} }
} }
@ -275,14 +271,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->Int64Type;
return __ptr->Int64Type;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->Int64Type = value;
__ptr->Int64Type = value;
} }
} }
@ -290,14 +284,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->IntMaxType;
return __ptr->IntMaxType;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->IntMaxType = value;
__ptr->IntMaxType = value;
} }
} }
@ -305,14 +297,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->IntPtrType;
return __ptr->IntPtrType;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->IntPtrType = value;
__ptr->IntPtrType = value;
} }
} }
@ -320,14 +310,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->SizeType;
return __ptr->SizeType;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->SizeType = value;
__ptr->SizeType = value;
} }
} }
@ -335,14 +323,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->UIntMaxType;
return __ptr->UIntMaxType;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->UIntMaxType = value;
__ptr->UIntMaxType = value;
} }
} }
@ -350,14 +336,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->WCharType;
return __ptr->WCharType;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->WCharType = value;
__ptr->WCharType = value;
} }
} }
@ -365,14 +349,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->WIntType;
return __ptr->WIntType;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->WIntType = value;
__ptr->WIntType = value;
} }
} }
@ -380,14 +362,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->BoolAlign;
return __ptr->BoolAlign;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->BoolAlign = value;
__ptr->BoolAlign = value;
} }
} }
@ -395,14 +375,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->BoolWidth;
return __ptr->BoolWidth;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->BoolWidth = value;
__ptr->BoolWidth = value;
} }
} }
@ -410,14 +388,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->CharAlign;
return __ptr->CharAlign;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->CharAlign = value;
__ptr->CharAlign = value;
} }
} }
@ -425,14 +401,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->CharWidth;
return __ptr->CharWidth;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->CharWidth = value;
__ptr->CharWidth = value;
} }
} }
@ -440,14 +414,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->Char16Align;
return __ptr->Char16Align;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->Char16Align = value;
__ptr->Char16Align = value;
} }
} }
@ -455,14 +427,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->Char16Width;
return __ptr->Char16Width;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->Char16Width = value;
__ptr->Char16Width = value;
} }
} }
@ -470,14 +440,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->Char32Align;
return __ptr->Char32Align;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->Char32Align = value;
__ptr->Char32Align = value;
} }
} }
@ -485,14 +453,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->Char32Width;
return __ptr->Char32Width;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->Char32Width = value;
__ptr->Char32Width = value;
} }
} }
@ -500,14 +466,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->HalfAlign;
return __ptr->HalfAlign;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->HalfAlign = value;
__ptr->HalfAlign = value;
} }
} }
@ -515,14 +479,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->HalfWidth;
return __ptr->HalfWidth;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->HalfWidth = value;
__ptr->HalfWidth = value;
} }
} }
@ -530,14 +492,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->FloatAlign;
return __ptr->FloatAlign;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->FloatAlign = value;
__ptr->FloatAlign = value;
} }
} }
@ -545,14 +505,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->FloatWidth;
return __ptr->FloatWidth;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->FloatWidth = value;
__ptr->FloatWidth = value;
} }
} }
@ -560,14 +518,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->DoubleAlign;
return __ptr->DoubleAlign;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->DoubleAlign = value;
__ptr->DoubleAlign = value;
} }
} }
@ -575,14 +531,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->DoubleWidth;
return __ptr->DoubleWidth;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->DoubleWidth = value;
__ptr->DoubleWidth = value;
} }
} }
@ -590,14 +544,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->ShortAlign;
return __ptr->ShortAlign;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->ShortAlign = value;
__ptr->ShortAlign = value;
} }
} }
@ -605,14 +557,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->ShortWidth;
return __ptr->ShortWidth;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->ShortWidth = value;
__ptr->ShortWidth = value;
} }
} }
@ -620,14 +570,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->IntAlign;
return __ptr->IntAlign;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->IntAlign = value;
__ptr->IntAlign = value;
} }
} }
@ -635,14 +583,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->IntWidth;
return __ptr->IntWidth;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->IntWidth = value;
__ptr->IntWidth = value;
} }
} }
@ -650,14 +596,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->IntMaxTWidth;
return __ptr->IntMaxTWidth;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->IntMaxTWidth = value;
__ptr->IntMaxTWidth = value;
} }
} }
@ -665,14 +609,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->LongAlign;
return __ptr->LongAlign;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->LongAlign = value;
__ptr->LongAlign = value;
} }
} }
@ -680,14 +622,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->LongWidth;
return __ptr->LongWidth;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->LongWidth = value;
__ptr->LongWidth = value;
} }
} }
@ -695,14 +635,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->LongDoubleAlign;
return __ptr->LongDoubleAlign;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->LongDoubleAlign = value;
__ptr->LongDoubleAlign = value;
} }
} }
@ -710,14 +648,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->LongDoubleWidth;
return __ptr->LongDoubleWidth;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->LongDoubleWidth = value;
__ptr->LongDoubleWidth = value;
} }
} }
@ -725,14 +661,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->LongLongAlign;
return __ptr->LongLongAlign;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->LongLongAlign = value;
__ptr->LongLongAlign = value;
} }
} }
@ -740,14 +674,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->LongLongWidth;
return __ptr->LongLongWidth;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->LongLongWidth = value;
__ptr->LongLongWidth = value;
} }
} }
@ -755,14 +687,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->PointerAlign;
return __ptr->PointerAlign;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->PointerAlign = value;
__ptr->PointerAlign = value;
} }
} }
@ -770,14 +700,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->PointerWidth;
return __ptr->PointerWidth;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->PointerWidth = value;
__ptr->PointerWidth = value;
} }
} }
@ -785,14 +713,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->WCharAlign;
return __ptr->WCharAlign;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->WCharAlign = value;
__ptr->WCharAlign = value;
} }
} }
@ -800,14 +726,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->WCharWidth;
return __ptr->WCharWidth;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->WCharWidth = value;
__ptr->WCharWidth = value;
} }
} }
} }

780
src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/AST.cs

File diff suppressed because it is too large Load Diff

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

@ -490,14 +490,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return (((Internal*) __Instance)->ASTContext == IntPtr.Zero) ? null : CppSharp.Parser.AST.ASTContext.__CreateInstance(((Internal*) __Instance)->ASTContext);
return (__ptr->ASTContext == IntPtr.Zero) ? null : CppSharp.Parser.AST.ASTContext.__CreateInstance(__ptr->ASTContext);
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->ASTContext = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
__ptr->ASTContext = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
} }
} }
@ -505,14 +503,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->ToolSetToUse;
return __ptr->ToolSetToUse;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->ToolSetToUse = value;
__ptr->ToolSetToUse = value;
} }
} }
@ -520,14 +516,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->Abi;
return __ptr->Abi;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->Abi = value;
__ptr->Abi = value;
} }
} }
@ -535,14 +529,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->NoStandardIncludes;
return __ptr->NoStandardIncludes;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->NoStandardIncludes = value;
__ptr->NoStandardIncludes = value;
} }
} }
@ -550,14 +542,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->NoBuiltinIncludes;
return __ptr->NoBuiltinIncludes;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->NoBuiltinIncludes = value;
__ptr->NoBuiltinIncludes = value;
} }
} }
@ -565,14 +555,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->MicrosoftMode;
return __ptr->MicrosoftMode;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->MicrosoftMode = value;
__ptr->MicrosoftMode = value;
} }
} }
@ -580,14 +568,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->Verbose;
return __ptr->Verbose;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->Verbose = value;
__ptr->Verbose = value;
} }
} }
@ -595,14 +581,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->LanguageVersion;
return __ptr->LanguageVersion;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->LanguageVersion = value;
__ptr->LanguageVersion = value;
} }
} }
} }
@ -749,14 +733,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->Level;
return __ptr->Level;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->Level = value;
__ptr->Level = value;
} }
} }
@ -764,14 +746,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->LineNumber;
return __ptr->LineNumber;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->LineNumber = value;
__ptr->LineNumber = value;
} }
} }
@ -779,14 +759,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->ColumnNumber;
return __ptr->ColumnNumber;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->ColumnNumber = value;
__ptr->ColumnNumber = value;
} }
} }
} }
@ -929,14 +907,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->Kind;
return __ptr->Kind;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->Kind = value;
__ptr->Kind = value;
} }
} }
@ -944,14 +920,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return (((Internal*) __Instance)->ASTContext == IntPtr.Zero) ? null : CppSharp.Parser.AST.ASTContext.__CreateInstance(((Internal*) __Instance)->ASTContext);
return (__ptr->ASTContext == IntPtr.Zero) ? null : CppSharp.Parser.AST.ASTContext.__CreateInstance(__ptr->ASTContext);
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->ASTContext = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
__ptr->ASTContext = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
} }
} }
@ -959,14 +933,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return (((Internal*) __Instance)->Library == IntPtr.Zero) ? null : CppSharp.Parser.AST.NativeLibrary.__CreateInstance(((Internal*) __Instance)->Library);
return (__ptr->Library == IntPtr.Zero) ? null : CppSharp.Parser.AST.NativeLibrary.__CreateInstance(__ptr->Library);
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->Library = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
__ptr->Library = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
} }
} }
} }

40
src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/Sources.cs

@ -34,6 +34,9 @@ namespace CppSharp
internal static extern global::System.IntPtr cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); internal static extern global::System.IntPtr cctor_2(global::System.IntPtr instance, global::System.IntPtr _0);
} }
private SourceLocation.Internal __instance;
public SourceLocation.Internal __Instance { get { return __instance; } }
public static SourceLocation __CreateInstance(global::System.IntPtr native) public static SourceLocation __CreateInstance(global::System.IntPtr native)
{ {
return new SourceLocation((SourceLocation.Internal*) native); return new SourceLocation((SourceLocation.Internal*) native);
@ -45,43 +48,36 @@ namespace CppSharp
} }
private SourceLocation(SourceLocation.Internal native) private SourceLocation(SourceLocation.Internal native)
: this(&native) : this()
{ {
__instance = native;
} }
private SourceLocation(SourceLocation.Internal* native, bool isInternalImpl = false) : this() private SourceLocation(SourceLocation.Internal* native, bool isInternalImpl = false) : this()
{ {
var __ptr = native; __instance = *native;
ID = __ptr->ID;
}
internal Internal ToInternal()
{
var __native = new CppSharp.Parser.SourceLocation.Internal();
var __ptr = &__native;
__native.ID = ID;
return __native;
}
internal void FromInternal(Internal* native)
{
var __ptr = native;
ID = __ptr->ID;
} }
public SourceLocation(uint ID) public SourceLocation(uint ID)
: this() : this()
{ {
var __fixedInstance = ToInternal(); fixed (Internal* __instancePtr = &__instance)
Internal.ctor_1(new global::System.IntPtr(&__fixedInstance), ID); {
FromInternal(&__fixedInstance); Internal.ctor_1(new global::System.IntPtr(__instancePtr), ID);
}
} }
public uint ID public uint ID
{ {
get; get
{
return __instance.ID;
}
set; set
{
__instance.ID = value;
}
} }
} }
} }

228
src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/Target.cs

@ -245,14 +245,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->Char16Type;
return __ptr->Char16Type;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->Char16Type = value;
__ptr->Char16Type = value;
} }
} }
@ -260,14 +258,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->Char32Type;
return __ptr->Char32Type;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->Char32Type = value;
__ptr->Char32Type = value;
} }
} }
@ -275,14 +271,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->Int64Type;
return __ptr->Int64Type;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->Int64Type = value;
__ptr->Int64Type = value;
} }
} }
@ -290,14 +284,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->IntMaxType;
return __ptr->IntMaxType;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->IntMaxType = value;
__ptr->IntMaxType = value;
} }
} }
@ -305,14 +297,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->IntPtrType;
return __ptr->IntPtrType;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->IntPtrType = value;
__ptr->IntPtrType = value;
} }
} }
@ -320,14 +310,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->SizeType;
return __ptr->SizeType;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->SizeType = value;
__ptr->SizeType = value;
} }
} }
@ -335,14 +323,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->UIntMaxType;
return __ptr->UIntMaxType;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->UIntMaxType = value;
__ptr->UIntMaxType = value;
} }
} }
@ -350,14 +336,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->WCharType;
return __ptr->WCharType;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->WCharType = value;
__ptr->WCharType = value;
} }
} }
@ -365,14 +349,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->WIntType;
return __ptr->WIntType;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->WIntType = value;
__ptr->WIntType = value;
} }
} }
@ -380,14 +362,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->BoolAlign;
return __ptr->BoolAlign;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->BoolAlign = value;
__ptr->BoolAlign = value;
} }
} }
@ -395,14 +375,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->BoolWidth;
return __ptr->BoolWidth;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->BoolWidth = value;
__ptr->BoolWidth = value;
} }
} }
@ -410,14 +388,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->CharAlign;
return __ptr->CharAlign;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->CharAlign = value;
__ptr->CharAlign = value;
} }
} }
@ -425,14 +401,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->CharWidth;
return __ptr->CharWidth;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->CharWidth = value;
__ptr->CharWidth = value;
} }
} }
@ -440,14 +414,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->Char16Align;
return __ptr->Char16Align;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->Char16Align = value;
__ptr->Char16Align = value;
} }
} }
@ -455,14 +427,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->Char16Width;
return __ptr->Char16Width;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->Char16Width = value;
__ptr->Char16Width = value;
} }
} }
@ -470,14 +440,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->Char32Align;
return __ptr->Char32Align;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->Char32Align = value;
__ptr->Char32Align = value;
} }
} }
@ -485,14 +453,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->Char32Width;
return __ptr->Char32Width;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->Char32Width = value;
__ptr->Char32Width = value;
} }
} }
@ -500,14 +466,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->HalfAlign;
return __ptr->HalfAlign;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->HalfAlign = value;
__ptr->HalfAlign = value;
} }
} }
@ -515,14 +479,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->HalfWidth;
return __ptr->HalfWidth;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->HalfWidth = value;
__ptr->HalfWidth = value;
} }
} }
@ -530,14 +492,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->FloatAlign;
return __ptr->FloatAlign;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->FloatAlign = value;
__ptr->FloatAlign = value;
} }
} }
@ -545,14 +505,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->FloatWidth;
return __ptr->FloatWidth;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->FloatWidth = value;
__ptr->FloatWidth = value;
} }
} }
@ -560,14 +518,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->DoubleAlign;
return __ptr->DoubleAlign;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->DoubleAlign = value;
__ptr->DoubleAlign = value;
} }
} }
@ -575,14 +531,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->DoubleWidth;
return __ptr->DoubleWidth;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->DoubleWidth = value;
__ptr->DoubleWidth = value;
} }
} }
@ -590,14 +544,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->ShortAlign;
return __ptr->ShortAlign;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->ShortAlign = value;
__ptr->ShortAlign = value;
} }
} }
@ -605,14 +557,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->ShortWidth;
return __ptr->ShortWidth;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->ShortWidth = value;
__ptr->ShortWidth = value;
} }
} }
@ -620,14 +570,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->IntAlign;
return __ptr->IntAlign;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->IntAlign = value;
__ptr->IntAlign = value;
} }
} }
@ -635,14 +583,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->IntWidth;
return __ptr->IntWidth;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->IntWidth = value;
__ptr->IntWidth = value;
} }
} }
@ -650,14 +596,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->IntMaxTWidth;
return __ptr->IntMaxTWidth;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->IntMaxTWidth = value;
__ptr->IntMaxTWidth = value;
} }
} }
@ -665,14 +609,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->LongAlign;
return __ptr->LongAlign;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->LongAlign = value;
__ptr->LongAlign = value;
} }
} }
@ -680,14 +622,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->LongWidth;
return __ptr->LongWidth;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->LongWidth = value;
__ptr->LongWidth = value;
} }
} }
@ -695,14 +635,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->LongDoubleAlign;
return __ptr->LongDoubleAlign;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->LongDoubleAlign = value;
__ptr->LongDoubleAlign = value;
} }
} }
@ -710,14 +648,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->LongDoubleWidth;
return __ptr->LongDoubleWidth;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->LongDoubleWidth = value;
__ptr->LongDoubleWidth = value;
} }
} }
@ -725,14 +661,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->LongLongAlign;
return __ptr->LongLongAlign;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->LongLongAlign = value;
__ptr->LongLongAlign = value;
} }
} }
@ -740,14 +674,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->LongLongWidth;
return __ptr->LongLongWidth;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->LongLongWidth = value;
__ptr->LongLongWidth = value;
} }
} }
@ -755,14 +687,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->PointerAlign;
return __ptr->PointerAlign;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->PointerAlign = value;
__ptr->PointerAlign = value;
} }
} }
@ -770,14 +700,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->PointerWidth;
return __ptr->PointerWidth;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->PointerWidth = value;
__ptr->PointerWidth = value;
} }
} }
@ -785,14 +713,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->WCharAlign;
return __ptr->WCharAlign;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->WCharAlign = value;
__ptr->WCharAlign = value;
} }
} }
@ -800,14 +726,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->WCharWidth;
return __ptr->WCharWidth;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->WCharWidth = value;
__ptr->WCharWidth = value;
} }
} }
} }

780
src/CppParser/Bindings/CSharp/x86_64-linux-gnu/AST.cs

File diff suppressed because it is too large Load Diff

84
src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppParser.cs

@ -490,14 +490,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return (((Internal*) __Instance)->ASTContext == IntPtr.Zero) ? null : CppSharp.Parser.AST.ASTContext.__CreateInstance(((Internal*) __Instance)->ASTContext);
return (__ptr->ASTContext == IntPtr.Zero) ? null : CppSharp.Parser.AST.ASTContext.__CreateInstance(__ptr->ASTContext);
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->ASTContext = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
__ptr->ASTContext = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
} }
} }
@ -505,14 +503,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->ToolSetToUse;
return __ptr->ToolSetToUse;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->ToolSetToUse = value;
__ptr->ToolSetToUse = value;
} }
} }
@ -520,14 +516,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->Abi;
return __ptr->Abi;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->Abi = value;
__ptr->Abi = value;
} }
} }
@ -535,14 +529,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->NoStandardIncludes;
return __ptr->NoStandardIncludes;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->NoStandardIncludes = value;
__ptr->NoStandardIncludes = value;
} }
} }
@ -550,14 +542,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->NoBuiltinIncludes;
return __ptr->NoBuiltinIncludes;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->NoBuiltinIncludes = value;
__ptr->NoBuiltinIncludes = value;
} }
} }
@ -565,14 +555,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->MicrosoftMode;
return __ptr->MicrosoftMode;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->MicrosoftMode = value;
__ptr->MicrosoftMode = value;
} }
} }
@ -580,14 +568,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->Verbose;
return __ptr->Verbose;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->Verbose = value;
__ptr->Verbose = value;
} }
} }
@ -595,14 +581,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->LanguageVersion;
return __ptr->LanguageVersion;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->LanguageVersion = value;
__ptr->LanguageVersion = value;
} }
} }
} }
@ -749,14 +733,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->Level;
return __ptr->Level;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->Level = value;
__ptr->Level = value;
} }
} }
@ -764,14 +746,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->LineNumber;
return __ptr->LineNumber;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->LineNumber = value;
__ptr->LineNumber = value;
} }
} }
@ -779,14 +759,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->ColumnNumber;
return __ptr->ColumnNumber;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->ColumnNumber = value;
__ptr->ColumnNumber = value;
} }
} }
} }
@ -929,14 +907,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->Kind;
return __ptr->Kind;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->Kind = value;
__ptr->Kind = value;
} }
} }
@ -944,14 +920,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return (((Internal*) __Instance)->ASTContext == IntPtr.Zero) ? null : CppSharp.Parser.AST.ASTContext.__CreateInstance(((Internal*) __Instance)->ASTContext);
return (__ptr->ASTContext == IntPtr.Zero) ? null : CppSharp.Parser.AST.ASTContext.__CreateInstance(__ptr->ASTContext);
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->ASTContext = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
__ptr->ASTContext = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
} }
} }
@ -959,14 +933,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return (((Internal*) __Instance)->Library == IntPtr.Zero) ? null : CppSharp.Parser.AST.NativeLibrary.__CreateInstance(((Internal*) __Instance)->Library);
return (__ptr->Library == IntPtr.Zero) ? null : CppSharp.Parser.AST.NativeLibrary.__CreateInstance(__ptr->Library);
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->Library = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
__ptr->Library = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
} }
} }
} }

40
src/CppParser/Bindings/CSharp/x86_64-linux-gnu/Sources.cs

@ -34,6 +34,9 @@ namespace CppSharp
internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0); internal static extern void cctor_2(global::System.IntPtr instance, global::System.IntPtr _0);
} }
private SourceLocation.Internal __instance;
public SourceLocation.Internal __Instance { get { return __instance; } }
public static SourceLocation __CreateInstance(global::System.IntPtr native) public static SourceLocation __CreateInstance(global::System.IntPtr native)
{ {
return new SourceLocation((SourceLocation.Internal*) native); return new SourceLocation((SourceLocation.Internal*) native);
@ -45,43 +48,36 @@ namespace CppSharp
} }
private SourceLocation(SourceLocation.Internal native) private SourceLocation(SourceLocation.Internal native)
: this(&native) : this()
{ {
__instance = native;
} }
private SourceLocation(SourceLocation.Internal* native, bool isInternalImpl = false) : this() private SourceLocation(SourceLocation.Internal* native, bool isInternalImpl = false) : this()
{ {
var __ptr = native; __instance = *native;
ID = __ptr->ID;
}
internal Internal ToInternal()
{
var __native = new CppSharp.Parser.SourceLocation.Internal();
var __ptr = &__native;
__native.ID = ID;
return __native;
}
internal void FromInternal(Internal* native)
{
var __ptr = native;
ID = __ptr->ID;
} }
public SourceLocation(uint ID) public SourceLocation(uint ID)
: this() : this()
{ {
var __fixedInstance = ToInternal(); fixed (Internal* __instancePtr = &__instance)
Internal.ctor_1(new global::System.IntPtr(&__fixedInstance), ID); {
FromInternal(&__fixedInstance); Internal.ctor_1(new global::System.IntPtr(__instancePtr), ID);
}
} }
public uint ID public uint ID
{ {
get; get
{
return __instance.ID;
}
set; set
{
__instance.ID = value;
}
} }
} }
} }

228
src/CppParser/Bindings/CSharp/x86_64-linux-gnu/Target.cs

@ -245,14 +245,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->Char16Type;
return __ptr->Char16Type;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->Char16Type = value;
__ptr->Char16Type = value;
} }
} }
@ -260,14 +258,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->Char32Type;
return __ptr->Char32Type;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->Char32Type = value;
__ptr->Char32Type = value;
} }
} }
@ -275,14 +271,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->Int64Type;
return __ptr->Int64Type;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->Int64Type = value;
__ptr->Int64Type = value;
} }
} }
@ -290,14 +284,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->IntMaxType;
return __ptr->IntMaxType;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->IntMaxType = value;
__ptr->IntMaxType = value;
} }
} }
@ -305,14 +297,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->IntPtrType;
return __ptr->IntPtrType;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->IntPtrType = value;
__ptr->IntPtrType = value;
} }
} }
@ -320,14 +310,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->SizeType;
return __ptr->SizeType;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->SizeType = value;
__ptr->SizeType = value;
} }
} }
@ -335,14 +323,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->UIntMaxType;
return __ptr->UIntMaxType;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->UIntMaxType = value;
__ptr->UIntMaxType = value;
} }
} }
@ -350,14 +336,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->WCharType;
return __ptr->WCharType;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->WCharType = value;
__ptr->WCharType = value;
} }
} }
@ -365,14 +349,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->WIntType;
return __ptr->WIntType;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->WIntType = value;
__ptr->WIntType = value;
} }
} }
@ -380,14 +362,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->BoolAlign;
return __ptr->BoolAlign;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->BoolAlign = value;
__ptr->BoolAlign = value;
} }
} }
@ -395,14 +375,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->BoolWidth;
return __ptr->BoolWidth;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->BoolWidth = value;
__ptr->BoolWidth = value;
} }
} }
@ -410,14 +388,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->CharAlign;
return __ptr->CharAlign;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->CharAlign = value;
__ptr->CharAlign = value;
} }
} }
@ -425,14 +401,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->CharWidth;
return __ptr->CharWidth;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->CharWidth = value;
__ptr->CharWidth = value;
} }
} }
@ -440,14 +414,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->Char16Align;
return __ptr->Char16Align;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->Char16Align = value;
__ptr->Char16Align = value;
} }
} }
@ -455,14 +427,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->Char16Width;
return __ptr->Char16Width;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->Char16Width = value;
__ptr->Char16Width = value;
} }
} }
@ -470,14 +440,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->Char32Align;
return __ptr->Char32Align;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->Char32Align = value;
__ptr->Char32Align = value;
} }
} }
@ -485,14 +453,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->Char32Width;
return __ptr->Char32Width;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->Char32Width = value;
__ptr->Char32Width = value;
} }
} }
@ -500,14 +466,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->HalfAlign;
return __ptr->HalfAlign;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->HalfAlign = value;
__ptr->HalfAlign = value;
} }
} }
@ -515,14 +479,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->HalfWidth;
return __ptr->HalfWidth;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->HalfWidth = value;
__ptr->HalfWidth = value;
} }
} }
@ -530,14 +492,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->FloatAlign;
return __ptr->FloatAlign;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->FloatAlign = value;
__ptr->FloatAlign = value;
} }
} }
@ -545,14 +505,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->FloatWidth;
return __ptr->FloatWidth;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->FloatWidth = value;
__ptr->FloatWidth = value;
} }
} }
@ -560,14 +518,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->DoubleAlign;
return __ptr->DoubleAlign;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->DoubleAlign = value;
__ptr->DoubleAlign = value;
} }
} }
@ -575,14 +531,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->DoubleWidth;
return __ptr->DoubleWidth;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->DoubleWidth = value;
__ptr->DoubleWidth = value;
} }
} }
@ -590,14 +544,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->ShortAlign;
return __ptr->ShortAlign;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->ShortAlign = value;
__ptr->ShortAlign = value;
} }
} }
@ -605,14 +557,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->ShortWidth;
return __ptr->ShortWidth;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->ShortWidth = value;
__ptr->ShortWidth = value;
} }
} }
@ -620,14 +570,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->IntAlign;
return __ptr->IntAlign;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->IntAlign = value;
__ptr->IntAlign = value;
} }
} }
@ -635,14 +583,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->IntWidth;
return __ptr->IntWidth;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->IntWidth = value;
__ptr->IntWidth = value;
} }
} }
@ -650,14 +596,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->IntMaxTWidth;
return __ptr->IntMaxTWidth;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->IntMaxTWidth = value;
__ptr->IntMaxTWidth = value;
} }
} }
@ -665,14 +609,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->LongAlign;
return __ptr->LongAlign;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->LongAlign = value;
__ptr->LongAlign = value;
} }
} }
@ -680,14 +622,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->LongWidth;
return __ptr->LongWidth;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->LongWidth = value;
__ptr->LongWidth = value;
} }
} }
@ -695,14 +635,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->LongDoubleAlign;
return __ptr->LongDoubleAlign;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->LongDoubleAlign = value;
__ptr->LongDoubleAlign = value;
} }
} }
@ -710,14 +648,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->LongDoubleWidth;
return __ptr->LongDoubleWidth;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->LongDoubleWidth = value;
__ptr->LongDoubleWidth = value;
} }
} }
@ -725,14 +661,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->LongLongAlign;
return __ptr->LongLongAlign;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->LongLongAlign = value;
__ptr->LongLongAlign = value;
} }
} }
@ -740,14 +674,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->LongLongWidth;
return __ptr->LongLongWidth;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->LongLongWidth = value;
__ptr->LongLongWidth = value;
} }
} }
@ -755,14 +687,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->PointerAlign;
return __ptr->PointerAlign;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->PointerAlign = value;
__ptr->PointerAlign = value;
} }
} }
@ -770,14 +700,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->PointerWidth;
return __ptr->PointerWidth;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->PointerWidth = value;
__ptr->PointerWidth = value;
} }
} }
@ -785,14 +713,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->WCharAlign;
return __ptr->WCharAlign;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->WCharAlign = value;
__ptr->WCharAlign = value;
} }
} }
@ -800,14 +726,12 @@ namespace CppSharp
{ {
get get
{ {
var __ptr = (Internal*)__Instance.ToPointer(); return ((Internal*) __Instance)->WCharWidth;
return __ptr->WCharWidth;
} }
set set
{ {
var __ptr = (Internal*)__Instance.ToPointer(); ((Internal*) __Instance)->WCharWidth = value;
__ptr->WCharWidth = value;
} }
} }
} }

7
src/Generator/Generators/CLI/CLIGenerator.cs

@ -38,5 +38,12 @@ namespace CppSharp.Generators.CLI
Driver.TranslationUnitPasses.AddPass(new ObjectOverridesPass()); Driver.TranslationUnitPasses.AddPass(new ObjectOverridesPass());
return true; return true;
} }
public static bool ShouldGenerateClassNativeField(Class @class)
{
if (@class.IsStatic)
return false;
return @class.IsRefType && (!@class.HasBase || !@class.HasRefBase());
}
} }
} }

4
src/Generator/Generators/CLI/CLIHeadersTemplate.cs

@ -255,7 +255,7 @@ namespace CppSharp.Generators.CLI
var nativeType = string.Format("::{0}*", @class.QualifiedOriginalName); var nativeType = string.Format("::{0}*", @class.QualifiedOriginalName);
if (CSharpTextTemplate.ShouldGenerateClassNativeField(@class)) if (CLIGenerator.ShouldGenerateClassNativeField(@class))
GenerateClassNativeField(@class, nativeType); GenerateClassNativeField(@class, nativeType);
GenerateClassConstructors(@class, nativeType); GenerateClassConstructors(@class, nativeType);
@ -583,7 +583,7 @@ namespace CppSharp.Generators.CLI
if (!@class.IsStatic) if (!@class.IsStatic)
{ {
if (CSharpTextTemplate.HasRefBase(@class)) if (@class.HasRefBase())
Write(" : {0}", QualifiedIdentifier(@class.Bases[0].Class)); Write(" : {0}", QualifiedIdentifier(@class.Bases[0].Class));
else if (@class.IsRefType) else if (@class.IsRefType)
Write(" : ICppInstance"); Write(" : ICppInstance");

6
src/Generator/Generators/CLI/CLISourcesTemplate.cs

@ -140,7 +140,7 @@ namespace CppSharp.Generators.CLI
GenerateClassMethods(@class, @class); GenerateClassMethods(@class, @class);
if (CSharpTextTemplate.ShouldGenerateClassNativeField(@class)) if (CLIGenerator.ShouldGenerateClassNativeField(@class))
{ {
PushBlock(CLIBlockKind.Method); PushBlock(CLIBlockKind.Method);
WriteLine("System::IntPtr {0}::{1}::get()", WriteLine("System::IntPtr {0}::{1}::get()",
@ -252,7 +252,7 @@ namespace CppSharp.Generators.CLI
WriteLine("{0}::~{1}()", QualifiedIdentifier(@class), @class.Name); WriteLine("{0}::~{1}()", QualifiedIdentifier(@class), @class.Name);
WriteStartBraceIndent(); WriteStartBraceIndent();
if (CSharpTextTemplate.ShouldGenerateClassNativeField(@class)) if (CLIGenerator.ShouldGenerateClassNativeField(@class))
WriteLine("delete NativePtr;"); WriteLine("delete NativePtr;");
WriteCloseBraceIndent(); WriteCloseBraceIndent();
@ -267,7 +267,7 @@ namespace CppSharp.Generators.CLI
WriteLine("{0}::!{1}()", QualifiedIdentifier(@class), @class.Name); WriteLine("{0}::!{1}()", QualifiedIdentifier(@class), @class.Name);
WriteStartBraceIndent(); WriteStartBraceIndent();
if (CSharpTextTemplate.ShouldGenerateClassNativeField(@class)) if (CLIGenerator.ShouldGenerateClassNativeField(@class))
WriteLine("delete NativePtr;"); WriteLine("delete NativePtr;");
WriteCloseBraceIndent(); WriteCloseBraceIndent();

7
src/Generator/Generators/CSharp/CSharpMarshal.cs

@ -426,9 +426,10 @@ namespace CppSharp.Generators.CSharp
} }
else else
{ {
Context.SupportBefore.WriteLine("var {0} = {1}.ToInternal();", Context.SupportBefore.WriteLine("var {0} = {1}.{2};",
Generator.GeneratedIdentifier(Context.ArgName), Generator.GeneratedIdentifier(Context.ArgName),
Context.Parameter.Name); Context.Parameter.Name,
Helpers.InstanceIdentifier);
} }
Context.Return.Write("new global::System.IntPtr(&{0})", Context.Return.Write("new global::System.IntPtr(&{0})",
@ -586,7 +587,7 @@ namespace CppSharp.Generators.CSharp
private void MarshalValueClass() private void MarshalValueClass()
{ {
Context.Return.Write("{0}.ToInternal()", Context.Parameter.Name); Context.Return.Write("{0}.{1}", Context.Parameter.Name, Helpers.InstanceIdentifier);
} }
public override bool VisitFieldDecl(Field field) public override bool VisitFieldDecl(Field field)

284
src/Generator/Generators/CSharp/CSharpTextTemplate.cs

@ -41,6 +41,7 @@ namespace CppSharp.Generators.CSharp
return new string(id.Select(c => char.IsLetterOrDigit(c) ? c : '_').ToArray()); return new string(id.Select(c => char.IsLetterOrDigit(c) ? c : '_').ToArray());
} }
public const string InstanceField = "__instance";
public const string InstanceIdentifier = "__Instance"; public const string InstanceIdentifier = "__Instance";
public const string OwnsNativeInstanceIdentifier = "__ownsNativeInstance"; public const string OwnsNativeInstanceIdentifier = "__ownsNativeInstance";
@ -343,8 +344,17 @@ namespace CppSharp.Generators.CSharp
if (ShouldGenerateClassNativeField(@class)) if (ShouldGenerateClassNativeField(@class))
{ {
PushBlock(CSharpBlockKind.Field); PushBlock(CSharpBlockKind.Field);
WriteLine("public global::System.IntPtr {0} {{ get; {1} set; }}", if (@class.IsValueType)
Helpers.InstanceIdentifier, @class.IsValueType ? "private" : "protected"); {
WriteLine("private {0}.Internal {1};", @class.Name, Helpers.InstanceField);
WriteLine("public {0}.Internal {1} {{ get {{ return {2}; }} }}", @class.Name,
Helpers.InstanceIdentifier, Helpers.InstanceField);
}
else
{
WriteLine("public {0} {1} {{ get; protected set; }}",
"global::System.IntPtr", Helpers.InstanceIdentifier);
}
PopBlock(NewLineKind.BeforeNextBlock); PopBlock(NewLineKind.BeforeNextBlock);
} }
@ -355,9 +365,6 @@ namespace CppSharp.Generators.CSharp
GenerateClassConstructors(@class); GenerateClassConstructors(@class);
if (@class.IsUnion)
GenerateUnionFields(@class);
GenerateClassMethods(@class.Methods); GenerateClassMethods(@class.Methods);
GenerateClassVariables(@class); GenerateClassVariables(@class);
GenerateClassProperties(@class); GenerateClassProperties(@class);
@ -591,141 +598,15 @@ namespace CppSharp.Generators.CSharp
WriteLine("partial struct Internal"); WriteLine("partial struct Internal");
} }
private void GenerateStructMarshalingProperties(Class @class)
{
foreach (var @base in @class.Bases)
{
if (!@base.IsClass || !@base.Class.IsDeclared)
continue;
GenerateStructMarshalingProperties(@base.Class);
}
for (int i = 0; i < @class.Properties.Count; i++)
{
var property = @class.Properties[i];
if (!property.IsGenerated || property.Field == null) continue;
var nativeField = string.Format("{0}->{1}",
Generator.GeneratedIdentifier("ptr"),
Helpers.SafeIdentifier(property.Field.OriginalName));
var ctx = new CSharpMarshalContext(Driver)
{
Kind = CSharpMarshalKind.NativeField,
ArgName = property.Name,
ReturnVarName = nativeField,
ReturnType = property.QualifiedType
};
var marshal = new CSharpMarshalNativeToManagedPrinter(ctx);
property.Visit(marshal);
if (!string.IsNullOrWhiteSpace(marshal.Context.SupportBefore))
Write(marshal.Context.SupportBefore);
if (marshal.Context.Return.StringBuilder.Length > 0)
{
WriteLine("{0} = {1};", property.Name, marshal.Context.Return);
}
}
}
private void GenerateStructInternalMarshaling(Class @class)
{
var marshalVar = Generator.GeneratedIdentifier("native");
WriteLine("var {0} = new {1}.Internal();", marshalVar, QualifiedIdentifier(@class));
WriteLine("var {0} = &{1};", Generator.GeneratedIdentifier("ptr"), marshalVar);
GenerateStructInternalMarshalingProperties(@class, marshalVar);
WriteLine("return {0};", marshalVar);
}
private void GenerateStructInternalMarshalingProperties(Class @class, string marshalVar)
{
foreach (var @base in @class.Bases)
{
if (!@base.IsClass || !@base.Class.IsDeclared)
continue;
var baseClass = @base.Class;
GenerateStructInternalMarshalingProperties(baseClass, marshalVar);
}
foreach (var property in @class.Properties)
{
if (!property.IsGenerated || property.Field == null)
continue;
GenerateStructInternalMarshalingProperty(property, marshalVar);
}
}
private void GenerateStructInternalMarshalingProperty(Property property, string marshalVar)
{
var nativeField = string.Format("{0}->{1}",
Generator.GeneratedIdentifier("ptr"),
Helpers.SafeIdentifier(property.Field.OriginalName));
var marshalCtx = new CSharpMarshalContext(Driver)
{
ArgName = property.Name,
ReturnVarName = nativeField,
};
var marshal = new CSharpMarshalManagedToNativePrinter(marshalCtx);
property.Visit(marshal);
Type type;
Class @class;
var isRef = property.Type.IsPointerTo(out type) &&
!(type.TryGetClass(out @class) && @class.IsValueType) &&
!type.IsPrimitiveType();
if (isRef)
{
WriteLine("if ({0} != null)", property.Name);
WriteStartBraceIndent();
}
if (!string.IsNullOrWhiteSpace(marshal.Context.SupportBefore))
WriteLine(marshal.Context.SupportBefore);
if (marshal.Context.Return.StringBuilder.Length > 0)
{
WriteLine("{0}.{1} = {2};", marshalVar,
Helpers.SafeIdentifier(property.OriginalName), marshal.Context.Return);
}
if (isRef)
WriteCloseBraceIndent();
}
public static bool HasRefBase(Class @class)
{
Class baseClass = null;
if (@class.HasBaseClass)
baseClass = @class.Bases[0].Class;
var hasRefBase = baseClass != null && baseClass.IsRefType
&& baseClass.IsDeclared;
return hasRefBase;
}
public static bool ShouldGenerateClassNativeField(Class @class) public static bool ShouldGenerateClassNativeField(Class @class)
{ {
if (@class.IsStatic) if (@class.IsStatic)
return false; return false;
return @class.IsRefType && (!@class.HasBase || !HasRefBase(@class)); return @class.IsValueType || !@class.HasBase || !@class.HasRefBase();
} }
public void GenerateClassProlog(Class @class) public void GenerateClassProlog(Class @class)
{ {
if (@class.IsUnion)
WriteLine("[StructLayout(LayoutKind.Explicit)]");
Write(@class.IsInternal ? "internal " : Helpers.GetAccess(@class.Access)); Write(@class.IsInternal ? "internal " : Helpers.GetAccess(@class.Access));
Write("unsafe "); Write("unsafe ");
@ -829,8 +710,6 @@ namespace CppSharp.Generators.CSharp
GenerateDeclarationCommon(field); GenerateDeclarationCommon(field);
var @class = (Class) field.Namespace; var @class = (Class) field.Namespace;
if (@class.IsUnion)
WriteLine("[FieldOffset({0})]", field.Offset);
WriteLine("{0} {1} {2};", @public ? "public" : "private", WriteLine("{0} {1} {2};", @public ? "public" : "private",
field.Type, field.Name); field.Type, field.Name);
@ -928,31 +807,16 @@ namespace CppSharp.Generators.CSharp
var field = decl as Field; var field = decl as Field;
if (WrapSetterArrayOfPointers(decl.Name, field.Type)) if (WrapSetterArrayOfPointers(decl.Name, field.Type))
return; return;
if (@class.IsValueType)
{
if (@class.IsUnion)
{
NewLine();
WriteStartBraceIndent();
WriteLine("{0} = value;", decl.Name);
WriteCloseBraceIndent();
PopBlock(NewLineKind.BeforeNextBlock);
return;
}
WriteLine(";");
PopBlock(NewLineKind.BeforeNextBlock);
return;
}
NewLine(); NewLine();
WriteStartBraceIndent(); WriteStartBraceIndent();
WriteLine("var {0} = (Internal*){1}.ToPointer();",
Generator.GeneratedIdentifier("ptr"), Helpers.InstanceIdentifier);
var marshal = new CSharpMarshalManagedToNativePrinter(ctx); var marshal = new CSharpMarshalManagedToNativePrinter(ctx);
ctx.ReturnVarName = string.Format("{0}->{1}", ctx.ReturnVarName = string.Format("{0}{1}{2}",
Generator.GeneratedIdentifier("ptr"), @class.IsValueType
? Helpers.InstanceField
: string.Format("((Internal*) {0})", Helpers.InstanceIdentifier),
@class.IsValueType ? "." : "->",
Helpers.SafeIdentifier(field.OriginalName)); Helpers.SafeIdentifier(field.OriginalName));
param.Visit(marshal); param.Visit(marshal);
@ -1037,33 +901,19 @@ namespace CppSharp.Generators.CSharp
var field = decl as Field; var field = decl as Field;
if (WrapGetterArrayOfPointers(decl.Name, field.Type)) if (WrapGetterArrayOfPointers(decl.Name, field.Type))
return; return;
if (@class.IsValueType)
{
if (@class.IsUnion)
{
NewLine();
WriteStartBraceIndent();
WriteLine("return {0};", decl.Name);
WriteCloseBraceIndent();
PopBlock(NewLineKind.BeforeNextBlock);
return;
}
WriteLine(";");
PopBlock(NewLineKind.BeforeNextBlock);
return;
}
NewLine(); NewLine();
WriteStartBraceIndent(); WriteStartBraceIndent();
WriteLine("var {0} = (Internal*){1}.ToPointer();",
Generator.GeneratedIdentifier("ptr"), Helpers.InstanceIdentifier);
var ctx = new CSharpMarshalContext(Driver) var ctx = new CSharpMarshalContext(Driver)
{ {
Kind = CSharpMarshalKind.NativeField, Kind = CSharpMarshalKind.NativeField,
ArgName = decl.Name, ArgName = decl.Name,
ReturnVarName = string.Format("{0}->{1}", Generator.GeneratedIdentifier("ptr"), ReturnVarName = string.Format("{0}{1}{2}",
@class.IsValueType
? Helpers.InstanceField
: string.Format("((Internal*) {0})", Helpers.InstanceIdentifier),
@class.IsValueType ? "." : "->",
Helpers.SafeIdentifier(field.OriginalName)), Helpers.SafeIdentifier(field.OriginalName)),
ReturnType = decl.QualifiedType ReturnType = decl.QualifiedType
}; };
@ -1944,31 +1794,11 @@ namespace CppSharp.Generators.CSharp
} }
else else
{ {
WriteLine("var {0} = {1};", WriteLine("{0} = *native;", Helpers.InstanceField);
Generator.GeneratedIdentifier("ptr"), "native");
GenerateStructMarshalingProperties(@class);
} }
WriteCloseBraceIndent(); WriteCloseBraceIndent();
PopBlock(NewLineKind.BeforeNextBlock); PopBlock(NewLineKind.BeforeNextBlock);
if (@class.IsValueType)
{
PushBlock(CSharpBlockKind.Method);
WriteLine("internal Internal ToInternal()");
WriteStartBraceIndent();
GenerateStructInternalMarshaling(@class);
WriteCloseBraceIndent();
PopBlock(NewLineKind.BeforeNextBlock);
PushBlock(CSharpBlockKind.Method);
WriteLine("internal void FromInternal(Internal* native)");
WriteStartBraceIndent();
WriteLine("var {0} = {1};", Generator.GeneratedIdentifier("ptr"), "native");
GenerateStructMarshalingProperties(@class);
WriteCloseBraceIndent();
PopBlock(NewLineKind.BeforeNextBlock);
}
} }
private void GenerateNativeConstructorByValue(Class @class, string className, string safeIdentifier) private void GenerateNativeConstructorByValue(Class @class, string className, string safeIdentifier)
@ -2012,11 +1842,15 @@ namespace CppSharp.Generators.CSharp
} }
PushBlock(CSharpBlockKind.Method); PushBlock(CSharpBlockKind.Method);
WriteLine("private {0}({1}.Internal native)", safeIdentifier, className); WriteLine("private {0}({1}.Internal native)", safeIdentifier, className);
WriteLineIndent(@class.IsRefType ? ": this(__CopyValue(native))" : ": this(&native)"); WriteLineIndent(@class.IsRefType ? ": this(__CopyValue(native))" : ": this()");
WriteStartBraceIndent(); WriteStartBraceIndent();
if (@class.IsRefType) if (@class.IsRefType)
{ {
WriteLine("{0} = true;", Helpers.OwnsNativeInstanceIdentifier); WriteLine("{0} = true;", Helpers.OwnsNativeInstanceIdentifier);
}
else
{
WriteLine("{0} = native;", Helpers.InstanceField);
} }
WriteCloseBraceIndent(); WriteCloseBraceIndent();
PopBlock(NewLineKind.BeforeNextBlock); PopBlock(NewLineKind.BeforeNextBlock);
@ -2146,7 +1980,7 @@ namespace CppSharp.Generators.CSharp
if (!method.IsConstructor) if (!method.IsConstructor)
{ {
Type type = method.OriginalReturnType.Type; Type type = method.OriginalReturnType.Type;
this.WriteLine("{0}{1}({2});", WriteLine("{0}{1}({2});",
type.IsPrimitiveType(PrimitiveType.Void) ? string.Empty : "return ", type.IsPrimitiveType(PrimitiveType.Void) ? string.Empty : "return ",
method.Name, method.Name,
string.Join(", ", string.Join(", ",
@ -2333,8 +2167,8 @@ namespace CppSharp.Generators.CSharp
if (@class.HasNonTrivialCopyConstructor) if (@class.HasNonTrivialCopyConstructor)
GenerateInternalFunctionCall(method); GenerateInternalFunctionCall(method);
else else
WriteLine("*(({0}.Internal*) __Instance) = *(({0}.Internal*) {1}.__Instance);", WriteLine("*(({0}.Internal*) {2}) = *(({0}.Internal*) {1}.{2});",
@class.Name, method.Parameters[0].Name); @class.Name, method.Parameters[0].Name, Helpers.InstanceIdentifier);
} }
else else
{ {
@ -2453,8 +2287,7 @@ namespace CppSharp.Generators.CSharp
if (needsFixedThis) if (needsFixedThis)
{ {
names.Insert(instanceIndex, string.Format("new global::System.IntPtr(&{0})", names.Insert(instanceIndex, string.Format("new global::System.IntPtr(__instancePtr)"));
GeneratedIdentifier("fixedInstance")));
} }
else else
{ {
@ -2471,11 +2304,15 @@ namespace CppSharp.Generators.CSharp
if (needsFixedThis) if (needsFixedThis)
{ {
WriteLine("var {0} = {1};", Generator.GeneratedIdentifier("fixedInstance"), if (operatorParam == null)
(method.IsOperator && method.OperatorKind != CXXOperatorKind.Subscript ? {
method.Parameters.First( WriteLine("fixed (Internal* __instancePtr = &{0})", Helpers.InstanceField);
p => p.Kind == ParameterKind.OperatorParameter).Name + "." : WriteStartBraceIndent();
string.Empty) + "ToInternal()"); }
else
{
WriteLine("var __instancePtr = &{0}.{1};", operatorParam.Name, Helpers.InstanceField);
}
} }
if (needsReturn && !originalFunction.HasIndirectReturnTypeParameter) if (needsReturn && !originalFunction.HasIndirectReturnTypeParameter)
@ -2488,7 +2325,8 @@ namespace CppSharp.Generators.CSharp
cleanups.AddRange( cleanups.AddRange(
from param in @params from param in @params
select param.Context into context select param.Context
into context
where context != null && !string.IsNullOrWhiteSpace(context.Cleanup) where context != null && !string.IsNullOrWhiteSpace(context.Cleanup)
select context.Cleanup); select context.Cleanup);
@ -2497,19 +2335,6 @@ namespace CppSharp.Generators.CSharp
Write(cleanup); Write(cleanup);
} }
if (needsFixedThis)
{
if (operatorParam != null)
{
WriteLine("{0}.FromInternal(&{1});",
operatorParam.Name, Generator.GeneratedIdentifier("fixedInstance"));
}
else
{
WriteLine("FromInternal(&{0});", Generator.GeneratedIdentifier("fixedInstance"));
}
}
if (needsReturn) if (needsReturn)
{ {
TypePrinter.PushContext(CSharpTypePrinterContextKind.Native); TypePrinter.PushContext(CSharpTypePrinterContextKind.Native);
@ -2554,13 +2379,16 @@ namespace CppSharp.Generators.CSharp
// Special case for indexer - needs to dereference if the internal // Special case for indexer - needs to dereference if the internal
// function is a pointer type and the property is not. // function is a pointer type and the property is not.
if (retType.Type.IsAddress() && if (retType.Type.IsAddress() &&
retType.Type.GetPointee().Equals(returnType) && retType.Type.GetPointee().Equals(returnType) &&
returnType.IsPrimitiveType()) returnType.IsPrimitiveType())
WriteLine("return *{0};", marshal.Context.Return); WriteLine("return *{0};", marshal.Context.Return);
else else
WriteLine("return {0};", marshal.Context.Return); WriteLine("return {0};", marshal.Context.Return);
} }
if (needsFixedThis && operatorParam == null)
WriteCloseBraceIndent();
} }
private int GetInstanceParamIndex(Function function) private int GetInstanceParamIndex(Function function)
@ -2608,16 +2436,6 @@ namespace CppSharp.Generators.CSharp
} }
} }
private static bool IsInstanceFunction(Function function)
{
var isInstanceFunction = false;
var method = function as Method;
if (method != null)
isInstanceFunction = method.Conversion == MethodConversionKind.None;
return isInstanceFunction;
}
public struct ParamMarshal public struct ParamMarshal
{ {
public string Name; public string Name;
@ -2707,7 +2525,7 @@ namespace CppSharp.Generators.CSharp
return string.Join(", ", return string.Join(", ",
from param in @params from param in @params
where param.Kind != ParameterKind.IndirectReturnType && !param.Ignore where param.Kind != ParameterKind.IndirectReturnType && !param.Ignore
let typeName = param.CSharpType(this.TypePrinter) let typeName = param.CSharpType(TypePrinter)
select string.Format("{0}{1} {2}", GetParameterUsage(param.Usage), select string.Format("{0}{1} {2}", GetParameterUsage(param.Usage),
typeName, param.Name + typeName, param.Name +
(param.DefaultArgument == null || !Options.GenerateDefaultValuesForArguments ? (param.DefaultArgument == null || !Options.GenerateDefaultValuesForArguments ?
@ -2892,7 +2710,7 @@ namespace CppSharp.Generators.CSharp
var @params = new List<string>(); var @params = new List<string>();
var typePrinter = TypePrinter as CSharpTypePrinter; var typePrinter = TypePrinter;
typePrinter.PushContext(CSharpTypePrinterContextKind.Native); typePrinter.PushContext(CSharpTypePrinterContextKind.Native);
var retParam = new Parameter { QualifiedType = function.ReturnType }; var retParam = new Parameter { QualifiedType = function.ReturnType };

8
tests/CSharpTemp/CSharpTemp.Tests.cs

@ -174,4 +174,12 @@ public class CSharpTempTests : GeneratorTestFixture
MethodsWithDefaultValues m1 = 5; MethodsWithDefaultValues m1 = 5;
Assert.AreEqual(5, m1.A); Assert.AreEqual(5, m1.A);
} }
[Test]
public void TestStructWithPrivateFields()
{
var structWithPrivateFields = new StructWithPrivateFields(10, new Foo { A = 5 });
Assert.AreEqual(10, structWithPrivateFields.SimplePrivateField);
Assert.AreEqual(5, structWithPrivateFields.ComplexPrivateField.A);
}
} }

16
tests/CSharpTemp/CSharpTemp.cpp

@ -375,3 +375,19 @@ void PropertyWithIgnoredType::setIgnoredType(const IgnoredType<int> &value)
{ {
_ignoredType = value; _ignoredType = value;
} }
StructWithPrivateFields::StructWithPrivateFields(int simplePrivateField, Foo complexPrivateField)
{
this->simplePrivateField = simplePrivateField;
this->complexPrivateField = complexPrivateField;
}
int StructWithPrivateFields::getSimplePrivateField()
{
return simplePrivateField;
}
Foo StructWithPrivateFields::getComplexPrivateField()
{
return complexPrivateField;
}

1
tests/CSharpTemp/CSharpTemp.cs

@ -87,6 +87,7 @@ namespace CppSharp.Tests
{ {
ctx.SetClassAsValueType("TestCopyConstructorVal"); ctx.SetClassAsValueType("TestCopyConstructorVal");
ctx.SetClassAsValueType("QGenericArgument"); ctx.SetClassAsValueType("QGenericArgument");
ctx.SetClassAsValueType("StructWithPrivateFields");
ctx.IgnoreClassWithName("IgnoredTypeInheritingNonIgnoredWithNoEmptyCtor"); ctx.IgnoreClassWithName("IgnoredTypeInheritingNonIgnoredWithNoEmptyCtor");
} }

13
tests/CSharpTemp/CSharpTemp.h

@ -311,3 +311,16 @@ public:
private: private:
IgnoredType<int> _ignoredType; IgnoredType<int> _ignoredType;
}; };
class DLL_API StructWithPrivateFields
{
public:
StructWithPrivateFields(int simplePrivateField, Foo complexPrivateField);
int getSimplePrivateField();
Foo getComplexPrivateField();
protected:
int protectedField;
private:
int simplePrivateField;
Foo complexPrivateField;
};

Loading…
Cancel
Save