From 1a33dc6964e254896c2c1e5ed996f540b32b1f92 Mon Sep 17 00:00:00 2001 From: Dimitar Dobrev Date: Wed, 11 Sep 2013 02:04:56 +0300 Subject: [PATCH] Documented the addition of internal implementations to the respective unit. Signed-off-by: Dimitar Dobrev --- .../Passes/GenerateAbstractImplementationsPass.cs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/Generator/Passes/GenerateAbstractImplementationsPass.cs b/src/Generator/Passes/GenerateAbstractImplementationsPass.cs index beec86ae..3a614eff 100644 --- a/src/Generator/Passes/GenerateAbstractImplementationsPass.cs +++ b/src/Generator/Passes/GenerateAbstractImplementationsPass.cs @@ -12,13 +12,16 @@ namespace CppSharp.Passes /// public class GenerateAbstractImplementationsPass : TranslationUnitPass { - private readonly List classes = new List(); + /// + /// Collects all internal implementations in a unit to be added at the end because the unit cannot be changed while it's being iterated though. + /// + private readonly List internalImpls = new List(); public override bool VisitTranslationUnit(TranslationUnit unit) { bool result = base.VisitTranslationUnit(unit); - unit.Classes.AddRange(classes); - classes.Clear(); + unit.Classes.AddRange(internalImpls); + internalImpls.Clear(); return result; } @@ -31,7 +34,7 @@ namespace CppSharp.Passes return false; if (@class.IsAbstract) - @classes.Add(AddInternalImplementation(@class)); + internalImpls.Add(AddInternalImplementation(@class)); return base.VisitClassDecl(@class); }