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

SortPseudoOpCodes() private method

private SortPseudoOpCodes ( ) : void
return void
        private void SortPseudoOpCodes()
        {
            for (int i = 0; i < code.Count - 1; i++)
            {
                switch (code[i].pseudo)
                {
                    case CodeType.LineNumber:
                    case CodeType.ReleaseTempLocal:
                        if (code[i + 1].opcode == OpCodes.Pop)
                        {
                            OpCodeWrapper temp = code[i];
                            code[i] = code[i + 1];
                            code[i + 1] = temp;
                            i--;
                        }
                        break;
                    case CodeType.BeginExceptionBlock:
                        if (code[i + 1].pseudo == CodeType.ReleaseTempLocal)
                        {
                            OpCodeWrapper temp = code[i];
                            code[i] = code[i + 1];
                            code[i + 1] = temp;
                            i--;
                        }
                        break;
                    case CodeType.Label:
                        if (code[i + 1].pseudo == CodeType.BeginExceptionBlock)
                        {
                            OpCodeWrapper temp = code[i];
                            code[i] = code[i + 1];
                            code[i + 1] = temp;
                            i--;
                        }
                        break;
                }
            }
        }