From dcd80ac5704d9007c48d843e7457060f61f3b028 Mon Sep 17 00:00:00 2001 From: Atsushi Eno Date: Thu, 15 Sep 2016 18:42:14 +0900 Subject: [PATCH] [generator] do not try to "enumify" reflection-based types. We update possibly-enumified members after loading XML metadata, but currently we iterate everything we loaded including managed references. That's waste of processing, so don't do that. (Also reduced attempts to process base types, but they did not actually happen anyways. The relevant code is slightly simplified.) --- tools/generator/GenBase.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tools/generator/GenBase.cs b/tools/generator/GenBase.cs index e30989c3a..4d79c6cc4 100644 --- a/tools/generator/GenBase.cs +++ b/tools/generator/GenBase.cs @@ -813,11 +813,12 @@ GenBase GetBaseGen () public virtual void UpdateEnums (CodeGenerationOptions opt) { - if (enum_updated) + if (enum_updated || !IsGeneratable) return; enum_updated = true; - for (var b = GetBaseGen (); b != null; b = b.GetBaseGen ()) - b.UpdateEnums (opt); + var baseGen = GetBaseGen (); + if (baseGen != null) + baseGen.UpdateEnums (opt); foreach (Method m in methods) { AutoDetectEnumifiedOverrideParameters (m, opt);