Skip to content

Commit 61b5e68

Browse files
committed
NH-4008 - Remove unused EmitUtil members.
1 parent 281fa80 commit 61b5e68

File tree

1 file changed

+17
-139
lines changed

1 file changed

+17
-139
lines changed

src/NHibernate/Bytecode/EmitUtil.cs

Lines changed: 17 additions & 139 deletions
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,10 @@
1-
using System;
2-
using System.Reflection;
31
using System.Reflection.Emit;
42
using System.Collections.Generic;
5-
using NHibernate.Linq;
6-
using NHibernate.Util;
73

84
namespace NHibernate.Bytecode
95
{
10-
public class EmitUtil
6+
public static class EmitUtil
117
{
12-
private EmitUtil()
13-
{
14-
}
15-
16-
/// <summary>
17-
/// Emits an <c>ldc.i4</c> opcode using the fastest available opcode choice.
18-
/// </summary>
19-
public static void EmitFastInt(ILGenerator il, int value)
20-
{
21-
switch (value)
22-
{
23-
case -1:
24-
il.Emit(OpCodes.Ldc_I4_M1);
25-
return;
26-
case 0:
27-
il.Emit(OpCodes.Ldc_I4_0);
28-
return;
29-
case 1:
30-
il.Emit(OpCodes.Ldc_I4_1);
31-
return;
32-
case 2:
33-
il.Emit(OpCodes.Ldc_I4_2);
34-
return;
35-
case 3:
36-
il.Emit(OpCodes.Ldc_I4_3);
37-
return;
38-
case 4:
39-
il.Emit(OpCodes.Ldc_I4_4);
40-
return;
41-
case 5:
42-
il.Emit(OpCodes.Ldc_I4_5);
43-
return;
44-
case 6:
45-
il.Emit(OpCodes.Ldc_I4_6);
46-
return;
47-
case 7:
48-
il.Emit(OpCodes.Ldc_I4_7);
49-
return;
50-
case 8:
51-
il.Emit(OpCodes.Ldc_I4_8);
52-
return;
53-
}
54-
55-
if (value > -129 && value < 128)
56-
{
57-
il.Emit(OpCodes.Ldc_I4_S, (SByte) value);
58-
}
59-
else
60-
{
61-
il.Emit(OpCodes.Ldc_I4, value);
62-
}
63-
}
64-
658
public static void EmitBoxIfNeeded(ILGenerator il, System.Type type)
669
{
6710
if (type.IsValueType)
@@ -70,29 +13,25 @@ public static void EmitBoxIfNeeded(ILGenerator il, System.Type type)
7013
}
7114
}
7215

73-
private static Dictionary<System.Type, OpCode> typeToOpcode;
16+
private static readonly Dictionary<System.Type, OpCode> typeToOpcode;
7417

7518
static EmitUtil()
7619
{
77-
typeToOpcode = new Dictionary<System.Type, OpCode>(12);
78-
79-
typeToOpcode[typeof(bool)] = OpCodes.Ldind_I1;
80-
typeToOpcode[typeof(sbyte)] = OpCodes.Ldind_I1;
81-
typeToOpcode[typeof(byte)] = OpCodes.Ldind_U1;
82-
83-
typeToOpcode[typeof(char)] = OpCodes.Ldind_U2;
84-
typeToOpcode[typeof(short)] = OpCodes.Ldind_I2;
85-
typeToOpcode[typeof(ushort)] = OpCodes.Ldind_U2;
86-
87-
typeToOpcode[typeof(int)] = OpCodes.Ldind_I4;
88-
typeToOpcode[typeof(uint)] = OpCodes.Ldind_U4;
89-
90-
typeToOpcode[typeof(long)] = OpCodes.Ldind_I8;
91-
typeToOpcode[typeof(ulong)] = OpCodes.Ldind_I8;
92-
93-
typeToOpcode[typeof(float)] = OpCodes.Ldind_R4;
94-
95-
typeToOpcode[typeof(double)] = OpCodes.Ldind_R8;
20+
typeToOpcode = new Dictionary<System.Type, OpCode>(12)
21+
{
22+
[typeof(bool)] = OpCodes.Ldind_I1,
23+
[typeof(sbyte)] = OpCodes.Ldind_I1,
24+
[typeof(byte)] = OpCodes.Ldind_U1,
25+
[typeof(char)] = OpCodes.Ldind_U2,
26+
[typeof(short)] = OpCodes.Ldind_I2,
27+
[typeof(ushort)] = OpCodes.Ldind_U2,
28+
[typeof(int)] = OpCodes.Ldind_I4,
29+
[typeof(uint)] = OpCodes.Ldind_U4,
30+
[typeof(long)] = OpCodes.Ldind_I8,
31+
[typeof(ulong)] = OpCodes.Ldind_I8,
32+
[typeof(float)] = OpCodes.Ldind_R4,
33+
[typeof(double)] = OpCodes.Ldind_R8
34+
};
9635
}
9736

9837
/// <summary>
@@ -146,66 +85,5 @@ public static void PreparePropertyForSet(ILGenerator il, System.Type propertyTyp
14685
}
14786
}
14887
}
149-
150-
/// <summary>
151-
/// Defines a new delegate type.
152-
/// </summary>
153-
public static System.Type DefineDelegateType(
154-
string fullTypeName,
155-
ModuleBuilder moduleBuilder,
156-
System.Type returnType,
157-
System.Type[] parameterTypes)
158-
{
159-
TypeBuilder delegateBuilder =
160-
moduleBuilder.DefineType(
161-
fullTypeName,
162-
TypeAttributes.Class | TypeAttributes.Public | TypeAttributes.Sealed | TypeAttributes.AnsiClass |
163-
TypeAttributes.AutoClass, typeof(MulticastDelegate));
164-
165-
// Define a special constructor
166-
ConstructorBuilder constructorBuilder =
167-
delegateBuilder.DefineConstructor(
168-
MethodAttributes.RTSpecialName | MethodAttributes.HideBySig | MethodAttributes.Public,
169-
CallingConventions.Standard, new System.Type[] {typeof(object), typeof(IntPtr)});
170-
171-
constructorBuilder.SetImplementationFlags(
172-
MethodImplAttributes.Runtime | MethodImplAttributes.Managed);
173-
174-
// Define the Invoke method for the delegate
175-
176-
MethodBuilder methodBuilder = delegateBuilder.DefineMethod("Invoke",
177-
MethodAttributes.Public | MethodAttributes.HideBySig
178-
| MethodAttributes.NewSlot | MethodAttributes.Virtual,
179-
returnType, parameterTypes);
180-
181-
methodBuilder.SetImplementationFlags(
182-
MethodImplAttributes.Runtime | MethodImplAttributes.Managed);
183-
184-
return delegateBuilder.CreateType();
185-
}
186-
187-
public static void EmitLoadType(ILGenerator il, System.Type type)
188-
{
189-
il.Emit(OpCodes.Ldtoken, type);
190-
il.Emit(OpCodes.Call, ReflectionCache.TypeMethods.GetTypeFromHandle);
191-
}
192-
193-
public static void EmitLoadMethodInfo(ILGenerator il, MethodInfo methodInfo)
194-
{
195-
il.Emit(OpCodes.Ldtoken, methodInfo);
196-
il.Emit(OpCodes.Call, ReflectionCache.MethodBaseMethods.GetMethodFromHandle);
197-
il.Emit(OpCodes.Castclass, typeof(MethodInfo));
198-
}
199-
200-
private static readonly MethodInfo CreateDelegate = ReflectHelper.GetMethod(
201-
() => Delegate.CreateDelegate(null, null));
202-
203-
public static void EmitCreateDelegateInstance(ILGenerator il, System.Type delegateType, MethodInfo methodInfo)
204-
{
205-
EmitLoadType(il, delegateType);
206-
EmitLoadMethodInfo(il, methodInfo);
207-
il.EmitCall(OpCodes.Call, CreateDelegate, null);
208-
il.Emit(OpCodes.Castclass, delegateType);
209-
}
21088
}
21189
}

0 commit comments

Comments
 (0)