Browse Source

Fix `String.CSharpSignatureType` returning incorrect type when the given type is a pointer or a reference. (#1473)

pull/1474/head
josetr 5 years ago committed by GitHub
parent
commit
3e742c3219
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/Std.cs
  2. 4
      src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/Std.cs
  3. 4
      src/Generator/Types/Std/Stdlib.cs

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

@ -749,10 +749,10 @@ namespace Std @@ -749,10 +749,10 @@ namespace Std
public unsafe partial struct __Internalc__N_std_N___1_S_vector____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.BasicString.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C __begin_;
internal __IntPtr __begin_;
[FieldOffset(4)]
internal global::Std.BasicString.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C __end_;
internal __IntPtr __end_;
[FieldOffset(8)]
internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair_____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C___N_std_N___1_S_allocator__S1_ __end_cap_;

4
src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/Std.cs

@ -749,10 +749,10 @@ namespace Std @@ -749,10 +749,10 @@ namespace Std
public unsafe partial struct __Internalc__N_std_N___1_S_vector____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.BasicString.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C __begin_;
internal __IntPtr __begin_;
[FieldOffset(8)]
internal global::Std.BasicString.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C __end_;
internal __IntPtr __end_;
[FieldOffset(16)]
internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair_____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C___N_std_N___1_S_allocator__S1_ __end_cap_;

4
src/Generator/Types/Std/Stdlib.cs

@ -334,9 +334,11 @@ namespace CppSharp.Types.Std @@ -334,9 +334,11 @@ namespace CppSharp.Types.Std
{
if (ctx.Kind == TypePrinterContextKind.Managed)
return new CILType(typeof(string));
ClassTemplateSpecialization basicString = GetBasicString(ctx.Type);
var typePrinter = new CSharpTypePrinter(null);
typePrinter.PushContext(TypePrinterContextKind.Native);
if (ctx.Type.Desugar().IsAddress())
return new CustomType(typePrinter.IntPtrType);
ClassTemplateSpecialization basicString = GetBasicString(ctx.Type);
return new CustomType(basicString.Visit(typePrinter).Type);
}

Loading…
Cancel
Save