internal IEnumerable <IMethodDefinition> getReachableMethodsFromMethod(IMethodReference method, IEnumerable <IModule> modules) { IEnumerable <IAssembly> assemblies = getAssembliesFromModules(modules); Microsoft.Cci.MetadataReaderHost readerHost = host as Microsoft.Cci.MetadataReaderHost; if (readerHost == null) { return(new List <IMethodDefinition>()); //? } ILGarbageCollect.Mark.WholeProgram program = new ILGarbageCollect.Mark.WholeProgram(assemblies, readerHost); RapidTypeAnalysis analyzer = new RapidTypeAnalysis(program, TargetProfile.Phone); analyzer.Run(new IMethodReference[] { method }); return(analyzer.ReachableMethods()); }
internal IEnumerable<IMethodDefinition> getReachableMethodsFromMethod(IMethodReference method, IEnumerable<IModule> modules) { IEnumerable<IAssembly> assemblies = getAssembliesFromModules(modules); Microsoft.Cci.MetadataReaderHost readerHost = host as Microsoft.Cci.MetadataReaderHost; if (readerHost == null) return new List<IMethodDefinition>(); //? ILGarbageCollect.Mark.WholeProgram program = new ILGarbageCollect.Mark.WholeProgram(assemblies, readerHost); RapidTypeAnalysis analyzer = new RapidTypeAnalysis(program, TargetProfile.Phone); analyzer.Run(new IMethodReference[] { method }); return analyzer.ReachableMethods(); }