IKVM.Internal.JsrInliner.JsrMethodAnalyzer.InstructionState.MergeSubroutineReturn C# (CSharp) Method

MergeSubroutineReturn() static private method

static private MergeSubroutineReturn ( InstructionState jsrSuccessor, InstructionState jsr, InstructionState ret, bool locals_modified ) : InstructionState
jsrSuccessor InstructionState
jsr InstructionState
ret InstructionState
locals_modified bool
return InstructionState
                internal static InstructionState MergeSubroutineReturn(InstructionState jsrSuccessor, InstructionState jsr, InstructionState ret, bool[] locals_modified)
                {
                    InstructionState next = ret.Copy();
                    next.LocalsCopyOnWrite();
                    for (int i = 0; i < locals_modified.Length; i++)
                    {
                        if (!locals_modified[i])
                        {
                            next.locals[i] = jsr.locals[i];
                        }
                    }
                    next.flags |= ShareFlags.Subroutines;
                    next.subroutines = jsr.subroutines;
                    next.callsites = jsr.callsites;
                    return jsrSuccessor + next;
                }