public DefineLabelDelegate BeginExceptionBlock() { ILGenerator forIl = null; System.Reflection.Emit.Label?l = null; DefineLabelDelegate ret = il => { if (forIl != null && forIl != il) { l = null; } if (l != null) { return(l.Value); } forIl = il; l = forIl.BeginExceptionBlock(); return(l.Value); }; InstructionSizes.Add(() => InstructionSize.BeginExceptionBlock()); LengthCache.Clear(); Buffer.Add( (il, logOnly, log) => { if (!logOnly) { ret(il); } log.AppendLine("--BeginExceptionBlock--"); } ); TraversableBuffer.Add(new BufferedILInstruction { StartsExceptionBlock = true }); Operations.Add(null); return(ret); }
public DefineLabelDelegate DefineLabel() { ILGenerator forIl = null; System.Reflection.Emit.Label?l = null; DefineLabelDelegate ret = il => { if (forIl != null && forIl != il) { l = null; } if (l != null) { return(l.Value); } forIl = il; l = forIl.DefineLabel(); return(l.Value); }; InstructionSizes.Add(() => InstructionSize.DefineLabel()); LengthCache.Clear(); Buffer.Add( (il, logOnly, log) => { if (!logOnly) { ret(il); } } ); TraversableBuffer.Add(new BufferedILInstruction { DefinesLabel = true }); Operations.Add(null); return(ret); }
internal Label(object owner, DefineLabelDelegate label, string name) { _Owner = owner; Name = name; LabelDel = label; }
internal Label(object owner, DefineLabelDelegate label, string name) { _Owner = owner; Name = name; LabelDel = label; }