From: Jarl Gullberg Date: Mon, 29 May 2017 20:22:26 +0000 (+0200) Subject: Changed signatures back to IEnumerable and added full enumeration to list where needed. X-Git-Tag: v3.0.0~109^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1cda816b97b1dfd2fcc1161ed920ee87c751c66b;p=platform%2Fcore%2Fcsapi%2Fopentk.git Changed signatures back to IEnumerable and added full enumeration to list where needed. --- diff --git a/src/Generator.Rewrite/Program.cs b/src/Generator.Rewrite/Program.cs index 96be25c..dc8bfcf 100644 --- a/src/Generator.Rewrite/Program.cs +++ b/src/Generator.Rewrite/Program.cs @@ -44,7 +44,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.ToList()); + program.Rewrite(file, key, options); } // mscorlib types @@ -60,9 +60,10 @@ namespace OpenTK.Rewrite static bool dllimport; - void Rewrite(string file, string keyfile, List options) + void Rewrite(string file, string keyfile, IEnumerable options) { - dllimport = options.Contains("-dllimport"); + IEnumerable optionsEnumerated = options as IList ?? options.ToList(); + dllimport = optionsEnumerated.Contains("-dllimport"); // Specify assembly read and write parameters // We want to keep a valid symbols file (pdb or mdb) @@ -130,7 +131,7 @@ namespace OpenTK.Rewrite { foreach (var type in module.Types) { - Rewrite(type, options); + Rewrite(type, optionsEnumerated); } } } @@ -144,7 +145,7 @@ namespace OpenTK.Rewrite } } - void Rewrite(TypeDefinition type, List options) + void Rewrite(TypeDefinition type, IEnumerable options) { var entry_points = type.Fields.FirstOrDefault(f => f.Name == "EntryPoints"); if (entry_points != null) @@ -186,13 +187,14 @@ namespace OpenTK.Rewrite } void Rewrite(TypeDefinition type, FieldDefinition entry_points, - List entry_signatures, List options) + List entry_signatures, IEnumerable options) { // Rewrite all wrapper methods var wrapper_signatures = new List(); wrapper_signatures.AddRange(type.Methods .Where(m => m.IsPublic && m.CustomAttributes.Any(a => a.AttributeType.Name == "AutoGeneratedAttribute"))); + IEnumerable optionsEnumerated = options as IList ?? options.ToList(); foreach (var wrapper in wrapper_signatures) { var autogenerated = wrapper.CustomAttributes @@ -204,7 +206,7 @@ namespace OpenTK.Rewrite var signature = entry_signatures.FirstOrDefault(s => s.Name == signature_name); int slot = GetSlot(signature); - ProcessMethod(wrapper, signature, slot, entry_points, options); + ProcessMethod(wrapper, signature, slot, entry_points, optionsEnumerated); } } @@ -214,7 +216,7 @@ namespace OpenTK.Rewrite { foreach (var nested_type in type.NestedTypes) { - Rewrite(nested_type, entry_points, entry_signatures, options); + Rewrite(nested_type, entry_points, entry_signatures, optionsEnumerated); } } } @@ -248,7 +250,7 @@ namespace OpenTK.Rewrite // Create body for method static void ProcessMethod(MethodDefinition wrapper, MethodDefinition native, int slot, - FieldDefinition entry_points, List options) + FieldDefinition entry_points, IEnumerable options) { var body = wrapper.Body; var il = body.GetILProcessor(); @@ -259,7 +261,8 @@ namespace OpenTK.Rewrite // and push each parameter on the stack DebugVariables vars = null; - if (options.Contains("-debug")) + IEnumerable optionsEnumerated = options as IList ?? options.ToList(); + if (optionsEnumerated.Contains("-debug")) { vars = EmitDebugPrologue(wrapper, il); } @@ -297,7 +300,7 @@ namespace OpenTK.Rewrite EmitParameterEpilogues(wrapper, native, body, il, generatedVariables); - if (options.Contains("-debug")) + if (optionsEnumerated.Contains("-debug")) { EmitDebugEpilogue(wrapper, il, vars); }