From a29f72663ca31b0e8d7a66d17884cc512612fecd Mon Sep 17 00:00:00 2001 From: Jarl Gullberg Date: Mon, 29 May 2017 18:12:43 +0200 Subject: [PATCH] Changed uses of IEnumerable to List in order to prevent multiple enumerations. --- src/Generator.Rewrite/Program.cs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/Generator.Rewrite/Program.cs b/src/Generator.Rewrite/Program.cs index 1297759..621b610 100644 --- a/src/Generator.Rewrite/Program.cs +++ b/src/Generator.Rewrite/Program.cs @@ -45,7 +45,7 @@ namespace OpenTK.Rewrite var file = args[0]; var key = args[1]; var options = args.Where(a => a.StartsWith("-") || a.StartsWith("/")); - program.Rewrite(file, key, options); + program.Rewrite(file, key, options.ToList()); } // mscorlib types @@ -61,7 +61,7 @@ namespace OpenTK.Rewrite static bool dllimport; - void Rewrite(string file, string keyfile, IEnumerable options) + void Rewrite(string file, string keyfile, List options) { dllimport = options.Contains("-dllimport"); @@ -80,6 +80,7 @@ namespace OpenTK.Rewrite { provider = new Mono.Cecil.Mdb.MdbReaderProvider(); } + read_params.SymbolReaderProvider = provider; read_params.ReadSymbols = true; read_params.ReadWrite = true; @@ -154,7 +155,7 @@ namespace OpenTK.Rewrite } } - void Rewrite(TypeDefinition type, IEnumerable options) + void Rewrite(TypeDefinition type, List options) { var entry_points = type.Fields.FirstOrDefault(f => f.Name == "EntryPoints"); if (entry_points != null) @@ -196,7 +197,7 @@ namespace OpenTK.Rewrite } void Rewrite(TypeDefinition type, FieldDefinition entry_points, - List entry_signatures, IEnumerable options) + List entry_signatures, List options) { // Rewrite all wrapper methods var wrapper_signatures = new List(); @@ -206,8 +207,8 @@ namespace OpenTK.Rewrite foreach (var wrapper in wrapper_signatures) { var autogenerated = wrapper.CustomAttributes - .Where(a => a.AttributeType.Name == "AutoGeneratedAttribute"); - if (autogenerated.Count() > 0) + .Where(a => a.AttributeType.Name == "AutoGeneratedAttribute").ToList(); + if (autogenerated.Any()) { var signature_name = (string)autogenerated.First() .Fields.First(f => f.Name == "EntryPoint").Argument.Value; @@ -258,7 +259,7 @@ namespace OpenTK.Rewrite // Create body for method static void ProcessMethod(MethodDefinition wrapper, MethodDefinition native, int slot, - FieldDefinition entry_points, IEnumerable options) + FieldDefinition entry_points, List options) { var body = wrapper.Body; var il = body.GetILProcessor(); -- 2.7.4