public HashedFirstMethodOrder( IDecodeMetaData <Local, Parameter, Method, Field, Property, Event, Type, Attribute, Assembly> md, IMethodOrder <Method, Type> underlyingMethodOrder) { this.md = md; this.underlying = underlyingMethodOrder; }
public MethodNumbers(MethodNumbering numbering, IMethodOrder <Method, Type> methodOrder, bool includeCalleesTransitively) { this.methodsNumbered = new List <Pair <Method, int> >(); this.methodOrder = methodOrder; this.ordered = methodOrder.OrderedMethods().ToList(); foreach (var m in this.ordered) { var index = numbering.Next(); if (this.number.ContainsKey(m)) { continue; // there may be repetition when we used the constructor first approach } this.number.Add(m, index); // we really want numbering.Next() called only once per method this.methodsNumbered.Add(Pair.For(m, index)); } this.selected = new Set <Method>(methodOrder.SelectedMethods(this.methodsNumbered, includeCalleesTransitively)); }