Browse Source

Documented the addition of internal implementations to the respective unit.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
pull/53/head
Dimitar Dobrev 12 years ago
parent
commit
1a33dc6964
  1. 11
      src/Generator/Passes/GenerateAbstractImplementationsPass.cs

11
src/Generator/Passes/GenerateAbstractImplementationsPass.cs

@ -12,13 +12,16 @@ namespace CppSharp.Passes
/// </summary> /// </summary>
public class GenerateAbstractImplementationsPass : TranslationUnitPass public class GenerateAbstractImplementationsPass : TranslationUnitPass
{ {
private readonly List<Class> classes = new List<Class>(); /// <summary>
/// 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.
/// </summary>
private readonly List<Class> internalImpls = new List<Class>();
public override bool VisitTranslationUnit(TranslationUnit unit) public override bool VisitTranslationUnit(TranslationUnit unit)
{ {
bool result = base.VisitTranslationUnit(unit); bool result = base.VisitTranslationUnit(unit);
unit.Classes.AddRange(classes); unit.Classes.AddRange(internalImpls);
classes.Clear(); internalImpls.Clear();
return result; return result;
} }
@ -31,7 +34,7 @@ namespace CppSharp.Passes
return false; return false;
if (@class.IsAbstract) if (@class.IsAbstract)
@classes.Add(AddInternalImplementation(@class)); internalImpls.Add(AddInternalImplementation(@class));
return base.VisitClassDecl(@class); return base.VisitClassDecl(@class);
} }

Loading…
Cancel
Save