IKVM.Internal.CodeEmitter.ReleaseTempLocal C# (CSharp) Method

ReleaseTempLocal() private method

private ReleaseTempLocal ( CodeEmitterLocal lb ) : void
lb CodeEmitterLocal
return void
        internal void ReleaseTempLocal(CodeEmitterLocal lb)
        {
            EmitPseudoOpCode(CodeType.ReleaseTempLocal, lb);
            for (int i = 0; i < tempLocals.Length; i++)
            {
                if (tempLocals[i] == null)
                {
                    tempLocals[i] = lb;
                    break;
                }
            }
        }

Usage Example

Exemplo n.º 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);
            }
All Usage Examples Of IKVM.Internal.CodeEmitter::ReleaseTempLocal