Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ EmitCatchStart()

void System.Linq.Expressions.Compiler.LambdaCompiler.EmitCatchStart ( CatchBlock cb)
inlineprivate

Definition at line 3402 of file LambdaCompiler.cs.

3403 {
3404 if (cb.Filter == null)
3405 {
3407 return;
3408 }
3411 _ilg.Emit(OpCodes.Isinst, cb.Test);
3420 EmitExpression(cb.Filter);
3423 _ilg.BeginCatchBlock(null);
3425 }
virtual void MarkLabel(Label loc)
virtual void Emit(OpCode opcode)
virtual void BeginCatchBlock(Type exceptionType)
static readonly OpCode Brtrue
Definition OpCodes.cs:119
static readonly OpCode Br
Definition OpCodes.cs:115
static readonly OpCode Ldc_I4_0
Definition OpCodes.cs:49
static readonly OpCode Isinst
Definition OpCodes.cs:237
static readonly OpCode Pop
Definition OpCodes.cs:79
static readonly OpCode Dup
Definition OpCodes.cs:77

References System.Linq.Expressions.Compiler.LambdaCompiler._ilg, System.Reflection.Emit.ILGenerator.BeginCatchBlock(), System.Reflection.Emit.OpCodes.Br, System.Reflection.Emit.OpCodes.Brtrue, System.Reflection.Emit.ILGenerator.DefineLabel(), System.Reflection.Emit.OpCodes.Dup, System.Reflection.Emit.ILGenerator.Emit(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitExpression(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitSaveExceptionOrPop(), System.Linq.Expressions.CatchBlock.Filter, System.Reflection.Emit.OpCodes.Isinst, System.Reflection.Emit.OpCodes.Ldc_I4_0, System.Reflection.Emit.ILGenerator.MarkLabel(), System.Reflection.Emit.OpCodes.Pop, System.Linq.Expressions.Compiler.LambdaCompiler.PopLabelBlock(), System.Linq.Expressions.Compiler.LambdaCompiler.PushLabelBlock(), and System.Linq.Expressions.CatchBlock.Test.

Referenced by System.Linq.Expressions.Compiler.LambdaCompiler.EmitTryExpression().