ReleaseTempLocal() 개인적인 메소드

private ReleaseTempLocal ( CodeEmitterLocal lb ) : void
lb CodeEmitterLocal
리턴 void
예제 #1
0
            internal sealed override void Emit(CodeEmitter ilgen)
            {
                LocalBuilder value1 = ilgen.AllocTempLocal(FloatOrDouble());
                LocalBuilder value2 = ilgen.AllocTempLocal(FloatOrDouble());

                ilgen.Emit(OpCodes.Stloc, value2);
                ilgen.Emit(OpCodes.Stloc, value1);
                ilgen.Emit(OpCodes.Ldloc, value1);
                ilgen.Emit(OpCodes.Ldloc, value2);
                ilgen.Emit(OpCodes.Cgt_Un);
                ilgen.Emit(OpCodes.Ldloc, value1);
                ilgen.Emit(OpCodes.Ldloc, value2);
                ilgen.Emit(OpCodes.Clt);
                ilgen.Emit(OpCodes.Sub);
                ilgen.ReleaseTempLocal(value1);
                ilgen.ReleaseTempLocal(value2);
            }
예제 #2
0
            internal sealed override void Emit(CodeEmitter ilgen)
            {
                LocalBuilder value1 = ilgen.AllocTempLocal(Types.Int64);
                LocalBuilder value2 = ilgen.AllocTempLocal(Types.Int64);

                ilgen.Emit(OpCodes.Stloc, value2);
                ilgen.Emit(OpCodes.Stloc, value1);
                ilgen.Emit(OpCodes.Ldloc, value1);
                ilgen.Emit(OpCodes.Ldloc, value2);
                ilgen.Emit(OpCodes.Cgt);
                ilgen.Emit(OpCodes.Ldloc, value1);
                ilgen.Emit(OpCodes.Ldloc, value2);
                ilgen.Emit(OpCodes.Clt);
                ilgen.Emit(OpCodes.Sub);
                ilgen.ReleaseTempLocal(value2);
                ilgen.ReleaseTempLocal(value1);
            }
예제 #3
0
			protected override void EmitSetImpl(CodeEmitter ilgen)
			{
				// NOTE even though the field is final, JNI reflection can still be used to set its value!
				CodeEmitterLocal temp = ilgen.AllocTempLocal(underlyingType);
				ilgen.Emit(OpCodes.Stloc, temp);
				ilgen.Emit(OpCodes.Unbox, underlyingType);
				ilgen.Emit(OpCodes.Ldloc, temp);
				ilgen.Emit(OpCodes.Stobj, underlyingType);
				ilgen.ReleaseTempLocal(temp);
			}