Browse Source

__CreateInstance: return C# null when native is null (#1698)

pull/1699/head
Fabio Anderegg 3 years ago committed by GitHub
parent
commit
92f774aabf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 7
      src/Generator/Generators/CSharp/CSharpSources.cs

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

@ -2384,6 +2384,13 @@ internal static bool {Helpers.TryGetNativeToManagedMappingIdentifier}(IntPtr nat @@ -2384,6 +2384,13 @@ internal static bool {Helpers.TryGetNativeToManagedMappingIdentifier}(IntPtr nat
@class.NeedsBase && !@class.BaseClass.IsInterface ? "new " : string.Empty,
printedClass, Helpers.CreateInstanceIdentifier, TypePrinter.IntPtrType);
WriteOpenBraceAndIndent();
if (@class.IsRefType)
{
WriteLine($"if (native == {TypePrinter.IntPtrType}.Zero)");
WriteLineIndent("return null;");
}
var suffix = @class.IsAbstract ? "Internal" : string.Empty;
var ctorCall = $"{printedClass.Type}{suffix}{printedClass.NameSuffix}";
WriteLine("return new {0}(native.ToPointer(), skipVTables);", ctorCall);

Loading…
Cancel
Save