Browse Source

make sure to only call operator= when it's actually generated

pull/1700/head
Fabio Anderegg 3 years ago
parent
commit
8aeecb8535
  1. 3
      src/Generator/Generators/CSharp/CSharpSources.cs

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

@ -1014,7 +1014,7 @@ internal static bool {Helpers.TryGetNativeToManagedMappingIdentifier}(IntPtr nat @@ -1014,7 +1014,7 @@ internal static bool {Helpers.TryGetNativeToManagedMappingIdentifier}(IntPtr nat
if (field.Type.TryGetClass(out Class fieldClass) && !(fieldClass is ClassTemplateSpecialization))
{
var caop = fieldClass.Methods.FirstOrDefault(m => m.OperatorKind == CXXOperatorKind.Equal);
if (caop != null)
if (caop != null && caop.IsGenerated)
{
var fieldName = ((Class)field.Namespace).Layout.Fields.First(
f => f.FieldPtr == field.OriginalPtr).Name;
@ -1026,7 +1026,6 @@ internal static bool {Helpers.TryGetNativeToManagedMappingIdentifier}(IntPtr nat @@ -1026,7 +1026,6 @@ internal static bool {Helpers.TryGetNativeToManagedMappingIdentifier}(IntPtr nat
typeName.RemoveNamespace();
WriteLine($"{fieldClass}.__Internal.OperatorEqual(dest, src);");
//UnindentAndWriteCloseBrace();
return;
}

Loading…
Cancel
Save