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 @@ -12,13 +12,16 @@ namespace CppSharp.Passes
/// </summary>
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)
{
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 @@ -31,7 +34,7 @@ namespace CppSharp.Passes
return false;
if (@class.IsAbstract)
@classes.Add(AddInternalImplementation(@class));
internalImpls.Add(AddInternalImplementation(@class));
return base.VisitClassDecl(@class);
}

Loading…
Cancel
Save