internal static LeaveExceptionHandlerInstruction Create(int labelIndex, bool hasValue) { if (labelIndex < CacheSize) { var index = (2 * labelIndex) | (hasValue ? 1 : 0); return(_cache[index] ?? (_cache[index] = new LeaveExceptionHandlerInstruction(labelIndex, hasValue))); } return(new LeaveExceptionHandlerInstruction(labelIndex, hasValue)); }
public void EmitLeaveExceptionHandler(bool hasValue, BranchLabel tryExpressionEndLabel) { Emit(LeaveExceptionHandlerInstruction.Create(EnsureLabelIndex(tryExpressionEndLabel), hasValue)); }