Browse Source

Merge pull request #366 from ddobrev/master

Changed the native ctors by value to also be wrapped by static methods
pull/373/head
João Matos 11 years ago
parent
commit
daae2b92fa
  1. 457
      src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/AST.cs
  2. 32
      src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppParser.cs
  3. 7
      src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/Sources.cs
  4. 7
      src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/Target.cs
  5. 457
      src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/AST.cs
  6. 32
      src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppParser.cs
  7. 7
      src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/Sources.cs
  8. 7
      src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/Target.cs
  9. 457
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu/AST.cs
  10. 32
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppParser.cs
  11. 7
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu/Sources.cs
  12. 7
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu/Target.cs
  13. 2
      src/Generator/Generators/CSharp/CSharpMarshal.cs
  14. 15
      src/Generator/Generators/CSharp/CSharpTextTemplate.cs

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

File diff suppressed because it is too large Load Diff

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

@ -239,6 +239,11 @@ namespace CppSharp @@ -239,6 +239,11 @@ namespace CppSharp
return new ParserOptions((ParserOptions.Internal*) native);
}
public static ParserOptions __CreateInstance(ParserOptions.Internal native)
{
return new ParserOptions(native);
}
private static ParserOptions.Internal* __CopyValue(ParserOptions.Internal native)
{
var ret = Marshal.AllocHGlobal(116);
@ -246,7 +251,7 @@ namespace CppSharp @@ -246,7 +251,7 @@ namespace CppSharp
return (ParserOptions.Internal*) ret;
}
internal ParserOptions(ParserOptions.Internal native)
private ParserOptions(ParserOptions.Internal native)
: this(__CopyValue(native))
{
__ownsNativeInstance = true;
@ -661,6 +666,11 @@ namespace CppSharp @@ -661,6 +666,11 @@ namespace CppSharp
return new ParserDiagnostic((ParserDiagnostic.Internal*) native);
}
public static ParserDiagnostic __CreateInstance(ParserDiagnostic.Internal native)
{
return new ParserDiagnostic(native);
}
private static ParserDiagnostic.Internal* __CopyValue(ParserDiagnostic.Internal native)
{
var ret = Marshal.AllocHGlobal(36);
@ -668,7 +678,7 @@ namespace CppSharp @@ -668,7 +678,7 @@ namespace CppSharp
return (ParserDiagnostic.Internal*) ret;
}
internal ParserDiagnostic(ParserDiagnostic.Internal native)
private ParserDiagnostic(ParserDiagnostic.Internal native)
: this(__CopyValue(native))
{
__ownsNativeInstance = true;
@ -843,6 +853,11 @@ namespace CppSharp @@ -843,6 +853,11 @@ namespace CppSharp
return new ParserResult((ParserResult.Internal*) native);
}
public static ParserResult __CreateInstance(ParserResult.Internal native)
{
return new ParserResult(native);
}
private static ParserResult.Internal* __CopyValue(ParserResult.Internal native)
{
var ret = Marshal.AllocHGlobal(28);
@ -850,7 +865,7 @@ namespace CppSharp @@ -850,7 +865,7 @@ namespace CppSharp
return (ParserResult.Internal*) ret;
}
internal ParserResult(ParserResult.Internal native)
private ParserResult(ParserResult.Internal native)
: this(__CopyValue(native))
{
__ownsNativeInstance = true;
@ -887,7 +902,7 @@ namespace CppSharp @@ -887,7 +902,7 @@ namespace CppSharp
{
var __ret = new CppSharp.Parser.ParserDiagnostic.Internal();
Internal.getDiagnostics_0(new IntPtr(&__ret), __Instance, i);
return new CppSharp.Parser.ParserDiagnostic(__ret);
return CppSharp.Parser.ParserDiagnostic.__CreateInstance(__ret);
}
public void addDiagnostics(CppSharp.Parser.ParserDiagnostic s)
@ -991,14 +1006,19 @@ namespace CppSharp @@ -991,14 +1006,19 @@ namespace CppSharp
return new ClangParser((ClangParser.Internal*) native);
}
public static ClangParser __CreateInstance(ClangParser.Internal native)
{
return new ClangParser(native);
}
private static ClangParser.Internal* __CopyValue(ClangParser.Internal native)
{
ClangParser.Internal* ret = (ClangParser.Internal*) Marshal.AllocHGlobal(1);
var ret = (ClangParser.Internal*) Marshal.AllocHGlobal(1);
*ret = native;
return ret;
}
internal ClangParser(ClangParser.Internal native)
private ClangParser(ClangParser.Internal native)
: this(__CopyValue(native))
{
__ownsNativeInstance = true;

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

@ -39,7 +39,12 @@ namespace CppSharp @@ -39,7 +39,12 @@ namespace CppSharp
return new SourceLocation((SourceLocation.Internal*) native);
}
internal SourceLocation(SourceLocation.Internal native)
public static SourceLocation __CreateInstance(SourceLocation.Internal native)
{
return new SourceLocation(native);
}
private SourceLocation(SourceLocation.Internal native)
: this(&native)
{
}

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

@ -179,6 +179,11 @@ namespace CppSharp @@ -179,6 +179,11 @@ namespace CppSharp
return new ParserTargetInfo((ParserTargetInfo.Internal*) native);
}
public static ParserTargetInfo __CreateInstance(ParserTargetInfo.Internal native)
{
return new ParserTargetInfo(native);
}
private static ParserTargetInfo.Internal* __CopyValue(ParserTargetInfo.Internal native)
{
var ret = Marshal.AllocHGlobal(164);
@ -186,7 +191,7 @@ namespace CppSharp @@ -186,7 +191,7 @@ namespace CppSharp
return (ParserTargetInfo.Internal*) ret;
}
internal ParserTargetInfo(ParserTargetInfo.Internal native)
private ParserTargetInfo(ParserTargetInfo.Internal native)
: this(__CopyValue(native))
{
__ownsNativeInstance = true;

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

File diff suppressed because it is too large Load Diff

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

@ -239,6 +239,11 @@ namespace CppSharp @@ -239,6 +239,11 @@ namespace CppSharp
return new ParserOptions((ParserOptions.Internal*) native);
}
public static ParserOptions __CreateInstance(ParserOptions.Internal native)
{
return new ParserOptions(native);
}
private static ParserOptions.Internal* __CopyValue(ParserOptions.Internal native)
{
var ret = Marshal.AllocHGlobal(140);
@ -246,7 +251,7 @@ namespace CppSharp @@ -246,7 +251,7 @@ namespace CppSharp
return (ParserOptions.Internal*) ret;
}
internal ParserOptions(ParserOptions.Internal native)
private ParserOptions(ParserOptions.Internal native)
: this(__CopyValue(native))
{
__ownsNativeInstance = true;
@ -661,6 +666,11 @@ namespace CppSharp @@ -661,6 +666,11 @@ namespace CppSharp
return new ParserDiagnostic((ParserDiagnostic.Internal*) native);
}
public static ParserDiagnostic __CreateInstance(ParserDiagnostic.Internal native)
{
return new ParserDiagnostic(native);
}
private static ParserDiagnostic.Internal* __CopyValue(ParserDiagnostic.Internal native)
{
var ret = Marshal.AllocHGlobal(60);
@ -668,7 +678,7 @@ namespace CppSharp @@ -668,7 +678,7 @@ namespace CppSharp
return (ParserDiagnostic.Internal*) ret;
}
internal ParserDiagnostic(ParserDiagnostic.Internal native)
private ParserDiagnostic(ParserDiagnostic.Internal native)
: this(__CopyValue(native))
{
__ownsNativeInstance = true;
@ -843,6 +853,11 @@ namespace CppSharp @@ -843,6 +853,11 @@ namespace CppSharp
return new ParserResult((ParserResult.Internal*) native);
}
public static ParserResult __CreateInstance(ParserResult.Internal native)
{
return new ParserResult(native);
}
private static ParserResult.Internal* __CopyValue(ParserResult.Internal native)
{
var ret = Marshal.AllocHGlobal(28);
@ -850,7 +865,7 @@ namespace CppSharp @@ -850,7 +865,7 @@ namespace CppSharp
return (ParserResult.Internal*) ret;
}
internal ParserResult(ParserResult.Internal native)
private ParserResult(ParserResult.Internal native)
: this(__CopyValue(native))
{
__ownsNativeInstance = true;
@ -887,7 +902,7 @@ namespace CppSharp @@ -887,7 +902,7 @@ namespace CppSharp
{
var __ret = new CppSharp.Parser.ParserDiagnostic.Internal();
Internal.getDiagnostics_0(__Instance, new IntPtr(&__ret), i);
return new CppSharp.Parser.ParserDiagnostic(__ret);
return CppSharp.Parser.ParserDiagnostic.__CreateInstance(__ret);
}
public void addDiagnostics(CppSharp.Parser.ParserDiagnostic s)
@ -991,14 +1006,19 @@ namespace CppSharp @@ -991,14 +1006,19 @@ namespace CppSharp
return new ClangParser((ClangParser.Internal*) native);
}
public static ClangParser __CreateInstance(ClangParser.Internal native)
{
return new ClangParser(native);
}
private static ClangParser.Internal* __CopyValue(ClangParser.Internal native)
{
ClangParser.Internal* ret = (ClangParser.Internal*) Marshal.AllocHGlobal(1);
var ret = (ClangParser.Internal*) Marshal.AllocHGlobal(1);
*ret = native;
return ret;
}
internal ClangParser(ClangParser.Internal native)
private ClangParser(ClangParser.Internal native)
: this(__CopyValue(native))
{
__ownsNativeInstance = true;

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

@ -39,7 +39,12 @@ namespace CppSharp @@ -39,7 +39,12 @@ namespace CppSharp
return new SourceLocation((SourceLocation.Internal*) native);
}
internal SourceLocation(SourceLocation.Internal native)
public static SourceLocation __CreateInstance(SourceLocation.Internal native)
{
return new SourceLocation(native);
}
private SourceLocation(SourceLocation.Internal native)
: this(&native)
{
}

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

@ -179,6 +179,11 @@ namespace CppSharp @@ -179,6 +179,11 @@ namespace CppSharp
return new ParserTargetInfo((ParserTargetInfo.Internal*) native);
}
public static ParserTargetInfo __CreateInstance(ParserTargetInfo.Internal native)
{
return new ParserTargetInfo(native);
}
private static ParserTargetInfo.Internal* __CopyValue(ParserTargetInfo.Internal native)
{
var ret = Marshal.AllocHGlobal(176);
@ -186,7 +191,7 @@ namespace CppSharp @@ -186,7 +191,7 @@ namespace CppSharp
return (ParserTargetInfo.Internal*) ret;
}
internal ParserTargetInfo(ParserTargetInfo.Internal native)
private ParserTargetInfo(ParserTargetInfo.Internal native)
: this(__CopyValue(native))
{
__ownsNativeInstance = true;

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

File diff suppressed because it is too large Load Diff

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

@ -239,6 +239,11 @@ namespace CppSharp @@ -239,6 +239,11 @@ namespace CppSharp
return new ParserOptions((ParserOptions.Internal*) native);
}
public static ParserOptions __CreateInstance(ParserOptions.Internal native)
{
return new ParserOptions(native);
}
private static ParserOptions.Internal* __CopyValue(ParserOptions.Internal native)
{
var ret = Marshal.AllocHGlobal(192);
@ -246,7 +251,7 @@ namespace CppSharp @@ -246,7 +251,7 @@ namespace CppSharp
return (ParserOptions.Internal*) ret;
}
internal ParserOptions(ParserOptions.Internal native)
private ParserOptions(ParserOptions.Internal native)
: this(__CopyValue(native))
{
__ownsNativeInstance = true;
@ -661,6 +666,11 @@ namespace CppSharp @@ -661,6 +666,11 @@ namespace CppSharp
return new ParserDiagnostic((ParserDiagnostic.Internal*) native);
}
public static ParserDiagnostic __CreateInstance(ParserDiagnostic.Internal native)
{
return new ParserDiagnostic(native);
}
private static ParserDiagnostic.Internal* __CopyValue(ParserDiagnostic.Internal native)
{
var ret = Marshal.AllocHGlobal(32);
@ -668,7 +678,7 @@ namespace CppSharp @@ -668,7 +678,7 @@ namespace CppSharp
return (ParserDiagnostic.Internal*) ret;
}
internal ParserDiagnostic(ParserDiagnostic.Internal native)
private ParserDiagnostic(ParserDiagnostic.Internal native)
: this(__CopyValue(native))
{
__ownsNativeInstance = true;
@ -843,6 +853,11 @@ namespace CppSharp @@ -843,6 +853,11 @@ namespace CppSharp
return new ParserResult((ParserResult.Internal*) native);
}
public static ParserResult __CreateInstance(ParserResult.Internal native)
{
return new ParserResult(native);
}
private static ParserResult.Internal* __CopyValue(ParserResult.Internal native)
{
var ret = Marshal.AllocHGlobal(56);
@ -850,7 +865,7 @@ namespace CppSharp @@ -850,7 +865,7 @@ namespace CppSharp
return (ParserResult.Internal*) ret;
}
internal ParserResult(ParserResult.Internal native)
private ParserResult(ParserResult.Internal native)
: this(__CopyValue(native))
{
__ownsNativeInstance = true;
@ -887,7 +902,7 @@ namespace CppSharp @@ -887,7 +902,7 @@ namespace CppSharp
{
var __ret = new CppSharp.Parser.ParserDiagnostic.Internal();
Internal.getDiagnostics_0(new IntPtr(&__ret), __Instance, i);
return new CppSharp.Parser.ParserDiagnostic(__ret);
return CppSharp.Parser.ParserDiagnostic.__CreateInstance(__ret);
}
public void addDiagnostics(CppSharp.Parser.ParserDiagnostic s)
@ -991,14 +1006,19 @@ namespace CppSharp @@ -991,14 +1006,19 @@ namespace CppSharp
return new ClangParser((ClangParser.Internal*) native);
}
public static ClangParser __CreateInstance(ClangParser.Internal native)
{
return new ClangParser(native);
}
private static ClangParser.Internal* __CopyValue(ClangParser.Internal native)
{
ClangParser.Internal* ret = (ClangParser.Internal*) Marshal.AllocHGlobal(1);
var ret = (ClangParser.Internal*) Marshal.AllocHGlobal(1);
*ret = native;
return ret;
}
internal ClangParser(ClangParser.Internal native)
private ClangParser(ClangParser.Internal native)
: this(__CopyValue(native))
{
__ownsNativeInstance = true;

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

@ -39,7 +39,12 @@ namespace CppSharp @@ -39,7 +39,12 @@ namespace CppSharp
return new SourceLocation((SourceLocation.Internal*) native);
}
internal SourceLocation(SourceLocation.Internal native)
public static SourceLocation __CreateInstance(SourceLocation.Internal native)
{
return new SourceLocation(native);
}
private SourceLocation(SourceLocation.Internal native)
: this(&native)
{
}

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

@ -179,6 +179,11 @@ namespace CppSharp @@ -179,6 +179,11 @@ namespace CppSharp
return new ParserTargetInfo((ParserTargetInfo.Internal*) native);
}
public static ParserTargetInfo __CreateInstance(ParserTargetInfo.Internal native)
{
return new ParserTargetInfo(native);
}
private static ParserTargetInfo.Internal* __CopyValue(ParserTargetInfo.Internal native)
{
var ret = Marshal.AllocHGlobal(160);
@ -186,7 +191,7 @@ namespace CppSharp @@ -186,7 +191,7 @@ namespace CppSharp
return (ParserTargetInfo.Internal*) ret;
}
internal ParserTargetInfo(ParserTargetInfo.Internal native)
private ParserTargetInfo(ParserTargetInfo.Internal native)
: this(__CopyValue(native))
{
__ownsNativeInstance = true;

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

@ -269,7 +269,7 @@ namespace CppSharp.Generators.CSharp @@ -269,7 +269,7 @@ namespace CppSharp.Generators.CSharp
@class.IsRefType ? "null" : string.Format("new {0}()", type),
type, Helpers.CreateInstanceIdentifier);
else
Context.Return.Write("new {0}({1})", type, instance);
Context.Return.Write("{0}.{1}({2})", type, Helpers.CreateInstanceIdentifier, instance);
return true;
}

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

@ -1908,9 +1908,9 @@ namespace CppSharp.Generators.CSharp @@ -1908,9 +1908,9 @@ namespace CppSharp.Generators.CSharp
WriteLine("return new {0}(({1}.Internal*) native);", safeIdentifier, className);
WriteCloseBraceIndent();
PopBlock(NewLineKind.BeforeNextBlock);
}
GenerateNativeConstructorByValue(@class, className, safeIdentifier);
GenerateNativeConstructorByValue(@class, className, safeIdentifier);
}
PushBlock(CSharpBlockKind.Method);
WriteLine("{0} {1}({2}.Internal* native, bool isInternalImpl = false){3}",
@ -1963,6 +1963,13 @@ namespace CppSharp.Generators.CSharp @@ -1963,6 +1963,13 @@ namespace CppSharp.Generators.CSharp
private void GenerateNativeConstructorByValue(Class @class, string className, string safeIdentifier)
{
PushBlock(CSharpBlockKind.Method);
WriteLine("public static {0} {1}({0}.Internal native)", className, Helpers.CreateInstanceIdentifier);
WriteStartBraceIndent();
WriteLine("return new {0}(native);", safeIdentifier);
WriteCloseBraceIndent();
PopBlock(NewLineKind.BeforeNextBlock);
if (@class.IsRefType)
{
PushBlock(CSharpBlockKind.Method);
@ -1985,7 +1992,7 @@ namespace CppSharp.Generators.CSharp @@ -1985,7 +1992,7 @@ namespace CppSharp.Generators.CSharp
}
else
{
WriteLine("{0}.Internal* ret = ({0}.Internal*) Marshal.AllocHGlobal({1});",
WriteLine("var ret = ({0}.Internal*) Marshal.AllocHGlobal({1});",
className, @class.Layout.Size);
WriteLine("*ret = native;", className);
WriteLine("return ret;");
@ -1994,7 +2001,7 @@ namespace CppSharp.Generators.CSharp @@ -1994,7 +2001,7 @@ namespace CppSharp.Generators.CSharp
PopBlock(NewLineKind.BeforeNextBlock);
}
PushBlock(CSharpBlockKind.Method);
WriteLine("internal {0}({1}.Internal native)", safeIdentifier, className);
WriteLine("private {0}({1}.Internal native)", safeIdentifier, className);
WriteLineIndent(@class.IsRefType ? ": this(__CopyValue(native))" : ": this(&native)");
WriteStartBraceIndent();
if (@class.IsRefType)

Loading…
Cancel
Save