public Routine(ZMachineProfiler profiler, int address, RoutineCompilationStatistics statistics)
 {
     this.profiler    = profiler;
     this.address     = address;
     this.statistics  = statistics;
     this.callIndexes = new List <int>();
 }
            public Call(ZMachineProfiler profiler, Routine routine, int index, int parentIndex, bool recursive)
            {
                this.profiler     = profiler;
                this.routine      = routine;
                this.index        = index;
                this.parentIndex  = parentIndex;
                this.recursive    = recursive;
                this.childIndexes = new List <int>();

                routine.AddCall(index);

                if (parentIndex >= 0)
                {
                    profiler.GetCallByIndex(parentIndex).childIndexes.Add(index);
                }
            }