From 0b2aa0d3bbc32d365244bca90b6ffd535ec3659f Mon Sep 17 00:00:00 2001 From: Nathan Brown Date: Thu, 13 Jul 2017 19:28:25 -0700 Subject: [PATCH] NH-4049 - Remove unused EmitUtil members. --- src/NHibernate/Bytecode/EmitUtil.cs | 156 +++------------------------- 1 file changed, 17 insertions(+), 139 deletions(-) diff --git a/src/NHibernate/Bytecode/EmitUtil.cs b/src/NHibernate/Bytecode/EmitUtil.cs index a6ba3b1fb6c..cb4992d679c 100644 --- a/src/NHibernate/Bytecode/EmitUtil.cs +++ b/src/NHibernate/Bytecode/EmitUtil.cs @@ -1,67 +1,10 @@ -using System; -using System.Reflection; using System.Reflection.Emit; using System.Collections.Generic; -using NHibernate.Linq; -using NHibernate.Util; namespace NHibernate.Bytecode { - public class EmitUtil + internal static class EmitUtil { - private EmitUtil() - { - } - - /// - /// Emits an ldc.i4 opcode using the fastest available opcode choice. - /// - public static void EmitFastInt(ILGenerator il, int value) - { - switch (value) - { - case -1: - il.Emit(OpCodes.Ldc_I4_M1); - return; - case 0: - il.Emit(OpCodes.Ldc_I4_0); - return; - case 1: - il.Emit(OpCodes.Ldc_I4_1); - return; - case 2: - il.Emit(OpCodes.Ldc_I4_2); - return; - case 3: - il.Emit(OpCodes.Ldc_I4_3); - return; - case 4: - il.Emit(OpCodes.Ldc_I4_4); - return; - case 5: - il.Emit(OpCodes.Ldc_I4_5); - return; - case 6: - il.Emit(OpCodes.Ldc_I4_6); - return; - case 7: - il.Emit(OpCodes.Ldc_I4_7); - return; - case 8: - il.Emit(OpCodes.Ldc_I4_8); - return; - } - - if (value > -129 && value < 128) - { - il.Emit(OpCodes.Ldc_I4_S, (SByte) value); - } - else - { - il.Emit(OpCodes.Ldc_I4, value); - } - } - public static void EmitBoxIfNeeded(ILGenerator il, System.Type type) { if (type.IsValueType) @@ -70,29 +13,25 @@ public static void EmitBoxIfNeeded(ILGenerator il, System.Type type) } } - private static Dictionary typeToOpcode; + private static readonly Dictionary typeToOpcode; static EmitUtil() { - typeToOpcode = new Dictionary(12); - - typeToOpcode[typeof(bool)] = OpCodes.Ldind_I1; - typeToOpcode[typeof(sbyte)] = OpCodes.Ldind_I1; - typeToOpcode[typeof(byte)] = OpCodes.Ldind_U1; - - typeToOpcode[typeof(char)] = OpCodes.Ldind_U2; - typeToOpcode[typeof(short)] = OpCodes.Ldind_I2; - typeToOpcode[typeof(ushort)] = OpCodes.Ldind_U2; - - typeToOpcode[typeof(int)] = OpCodes.Ldind_I4; - typeToOpcode[typeof(uint)] = OpCodes.Ldind_U4; - - typeToOpcode[typeof(long)] = OpCodes.Ldind_I8; - typeToOpcode[typeof(ulong)] = OpCodes.Ldind_I8; - - typeToOpcode[typeof(float)] = OpCodes.Ldind_R4; - - typeToOpcode[typeof(double)] = OpCodes.Ldind_R8; + typeToOpcode = new Dictionary + { + {typeof(bool), OpCodes.Ldind_I1}, + {typeof(sbyte), OpCodes.Ldind_I1}, + {typeof(byte), OpCodes.Ldind_U1}, + {typeof(char), OpCodes.Ldind_U2}, + {typeof(short), OpCodes.Ldind_I2}, + {typeof(ushort), OpCodes.Ldind_U2}, + {typeof(int), OpCodes.Ldind_I4}, + {typeof(uint), OpCodes.Ldind_U4}, + {typeof(long), OpCodes.Ldind_I8}, + {typeof(ulong), OpCodes.Ldind_I8}, + {typeof(float), OpCodes.Ldind_R4}, + {typeof(double), OpCodes.Ldind_R8}, + }; } /// @@ -146,66 +85,5 @@ public static void PreparePropertyForSet(ILGenerator il, System.Type propertyTyp } } } - - /// - /// Defines a new delegate type. - /// - public static System.Type DefineDelegateType( - string fullTypeName, - ModuleBuilder moduleBuilder, - System.Type returnType, - System.Type[] parameterTypes) - { - TypeBuilder delegateBuilder = - moduleBuilder.DefineType( - fullTypeName, - TypeAttributes.Class | TypeAttributes.Public | TypeAttributes.Sealed | TypeAttributes.AnsiClass | - TypeAttributes.AutoClass, typeof(MulticastDelegate)); - - // Define a special constructor - ConstructorBuilder constructorBuilder = - delegateBuilder.DefineConstructor( - MethodAttributes.RTSpecialName | MethodAttributes.HideBySig | MethodAttributes.Public, - CallingConventions.Standard, new System.Type[] {typeof(object), typeof(IntPtr)}); - - constructorBuilder.SetImplementationFlags( - MethodImplAttributes.Runtime | MethodImplAttributes.Managed); - - // Define the Invoke method for the delegate - - MethodBuilder methodBuilder = delegateBuilder.DefineMethod("Invoke", - MethodAttributes.Public | MethodAttributes.HideBySig - | MethodAttributes.NewSlot | MethodAttributes.Virtual, - returnType, parameterTypes); - - methodBuilder.SetImplementationFlags( - MethodImplAttributes.Runtime | MethodImplAttributes.Managed); - - return delegateBuilder.CreateType(); - } - - public static void EmitLoadType(ILGenerator il, System.Type type) - { - il.Emit(OpCodes.Ldtoken, type); - il.Emit(OpCodes.Call, ReflectionCache.TypeMethods.GetTypeFromHandle); - } - - public static void EmitLoadMethodInfo(ILGenerator il, MethodInfo methodInfo) - { - il.Emit(OpCodes.Ldtoken, methodInfo); - il.Emit(OpCodes.Call, ReflectionCache.MethodBaseMethods.GetMethodFromHandle); - il.Emit(OpCodes.Castclass, typeof(MethodInfo)); - } - - private static readonly MethodInfo CreateDelegate = ReflectHelper.GetMethod( - () => Delegate.CreateDelegate(null, null)); - - public static void EmitCreateDelegateInstance(ILGenerator il, System.Type delegateType, MethodInfo methodInfo) - { - EmitLoadType(il, delegateType); - EmitLoadMethodInfo(il, methodInfo); - il.EmitCall(OpCodes.Call, CreateDelegate, null); - il.Emit(OpCodes.Castclass, delegateType); - } } } \ No newline at end of file