Mono.CSharp.Lock.EmitPreTryBody C# (CSharp) Method

EmitPreTryBody() protected method

protected EmitPreTryBody ( EmitContext ec ) : void
ec EmitContext
return void
		protected override void EmitPreTryBody (EmitContext ec)
		{
			expr_copy.EmitAssign (ec, expr);

			if (lock_taken != null) {
				//
				// Initialize ref variable
				//
				lock_taken.EmitAssign (ec, new BoolLiteral (false, loc));
			} else {
				//
				// Monitor.Enter (expr_copy)
				//
				expr_copy.Emit (ec);
				ec.Emit (OpCodes.Call, TypeManager.void_monitor_enter_object);
			}
		}