Skip to content
This repository has been archived by the owner on Jan 16, 2022. It is now read-only.

Commit

Permalink
Misc.
Browse files Browse the repository at this point in the history
  • Loading branch information
Abrynos committed Aug 21, 2021
1 parent b3da5d0 commit 702c2c9
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 7 deletions.
12 changes: 6 additions & 6 deletions Implement.Net/Extensions/ILGeneratorExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,16 +32,14 @@
namespace Implement.Net.Extensions {
// ReSharper disable once InconsistentNaming
internal static class ILGeneratorExtensions {
internal static void EmitLoadType(this ILGenerator generator, Type type) {
generator.Emit(OpCodes.Ldtoken, type);
generator.EmitCall(OpCodes.Call, Methods.Type.GetTypeFromHandle, null);
}

internal static void Call(this ILGenerator generator, MethodInfo method) => generator.EmitCall(OpCodes.Call, method);

internal static void CallVirt(this ILGenerator generator, MethodInfo method) => generator.EmitCall(OpCodes.Callvirt, method);

private static void EmitCall(this ILGenerator generator, OpCode opCode, MethodInfo method) => generator.EmitCall(opCode, method, null);
internal static void EmitLoadType(this ILGenerator generator, Type type) {
generator.Emit(OpCodes.Ldtoken, type);
generator.Call(Methods.Type.GetTypeFromHandle);
}

internal static void EmitThrowIfLocalIsFalse(this ILGenerator generator, LocalBuilder variable, Type exceptionType) {
if (variable.LocalType != typeof(bool)) {
Expand All @@ -66,5 +64,7 @@ internal static void EmitThrowIfLocalIsFalse(this ILGenerator generator, LocalBu
// }
generator.MarkLabel(successLabel);
}

private static void EmitCall(this ILGenerator generator, OpCode opCode, MethodInfo method) => generator.EmitCall(opCode, method, null);
}
}
2 changes: 1 addition & 1 deletion Implement.Net/TypeFactory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -547,7 +547,7 @@ private static void ImplementDispose(TypeBuilder typeBuilder, FieldInfo handlerF
// }
// }
generator.MarkLabel(doNothingLabel);
// GC.SuppressFinalize(this);
generator.Emit(OpCodes.Ldarg_0);
generator.Call(Methods.GC.SuppressFinalize);
Expand Down

0 comments on commit 702c2c9

Please sign in to comment.