Browse Source

Improve IsPrimitiveTypeConvertibleToRef() performance

295227ce-f4a3-466b-a694-65c571873871
josetr 3 years ago
parent
commit
69925a56e1
  1. 29
      src/Generator/Generators/ExtensionMethods.cs

29
src/Generator/Generators/ExtensionMethods.cs

@ -10,6 +10,21 @@ namespace CppSharp.Generators
{ {
public static class ExtensionMethods public static class ExtensionMethods
{ {
private static PrimitiveType[] allowedToHaveDefaultPtrVals =
{
PrimitiveType.Bool,
PrimitiveType.Double,
PrimitiveType.Float,
PrimitiveType.Int,
PrimitiveType.Long,
PrimitiveType.LongLong,
PrimitiveType.Short,
PrimitiveType.UInt,
PrimitiveType.ULong,
PrimitiveType.ULongLong,
PrimitiveType.UShort
};
public static Interop.CallingConvention ToInteropCallConv(this CallingConvention convention) public static Interop.CallingConvention ToInteropCallConv(this CallingConvention convention)
{ {
switch (convention) switch (convention)
@ -31,20 +46,6 @@ namespace CppSharp.Generators
public static bool IsPrimitiveTypeConvertibleToRef(this Type type) public static bool IsPrimitiveTypeConvertibleToRef(this Type type)
{ {
var allowedToHaveDefaultPtrVals = new List<PrimitiveType>
{
PrimitiveType.Bool,
PrimitiveType.Double,
PrimitiveType.Float,
PrimitiveType.Int,
PrimitiveType.Long,
PrimitiveType.LongLong,
PrimitiveType.Short,
PrimitiveType.UInt,
PrimitiveType.ULong,
PrimitiveType.ULongLong,
PrimitiveType.UShort
};
return (type.IsPointerToPrimitiveType() && return (type.IsPointerToPrimitiveType() &&
allowedToHaveDefaultPtrVals.Any(type.IsPointerToPrimitiveType)) || allowedToHaveDefaultPtrVals.Any(type.IsPointerToPrimitiveType)) ||
(type.IsAddress() && type.GetPointee().IsEnum()); (type.IsAddress() && type.GetPointee().IsEnum());

Loading…
Cancel
Save