diff --git a/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/EventSource.cs b/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/EventSource.cs index c6913ba2e5208b9567272d1b874002d48e4d29fa..9d9fa34a2fba55b8914b1b5f88e6cb90547d5aff 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/EventSource.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/EventSource.cs @@ -1696,9 +1696,16 @@ private static Guid GenerateGuidFromName(string name) { dataType = Enum.GetUnderlyingType(dataType); - int dataTypeSize = System.Runtime.InteropServices.Marshal.SizeOf(dataType); - if (dataTypeSize < sizeof(int)) - dataType = typeof(int); + // Enums less than 4 bytes in size should be treated as int. + switch (Type.GetTypeCode(dataType)) + { + case TypeCode.Byte: + case TypeCode.SByte: + case TypeCode.Int16: + case TypeCode.UInt16: + dataType = typeof(int); + break; + } goto Again; }