Skip to content

Commit

Permalink
fix ParentProject / IVBProject leak
Browse files Browse the repository at this point in the history
  • Loading branch information
WaynePhillipsEA committed Jul 12, 2018
1 parent ca7cd95 commit 5c6bfc6
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 3 deletions.
7 changes: 5 additions & 2 deletions Rubberduck.Parsing/VBA/AttributeParser.cs
Expand Up @@ -52,8 +52,11 @@ public AttributeParser(ISourceCodeHandler sourceCodeHandler, Func<IVBAPreprocess
var tokenStreamProvider = new SimpleVBAModuleTokenStreamProvider();
var tokens = tokenStreamProvider.Tokens(code);
var preprocessor = _preprocessorFactory();
var preprocessorErrorListener = new PreprocessorExceptionErrorListener(module.ComponentName, ParsePass.AttributesPass);
preprocessor.PreprocessTokenStream(component.ParentProject, module.ComponentName, tokens, preprocessorErrorListener, cancellationToken);
var preprocessorErrorListener = new PreprocessorExceptionErrorListener(module.ComponentName, ParsePass.AttributesPass);
using (var project = component.ParentProject)
{
preprocessor.PreprocessTokenStream(project, module.ComponentName, tokens, preprocessorErrorListener, cancellationToken);
}
var listener = new AttributeListener(Tuple.Create(module.ComponentName, type));
// parse tree isn't usable for declarations because
// line numbers are offset due to module header and attributes
Expand Down
5 changes: 4 additions & 1 deletion Rubberduck.Parsing/VBA/ComponentParseTask.cs
Expand Up @@ -181,7 +181,10 @@ private CommonTokenStream RewriteAndPreprocess(CancellationToken cancellationTok

var tokenStreamProvider = new SimpleVBAModuleTokenStreamProvider();
var tokens = tokenStreamProvider.Tokens(code);
_preprocessor.PreprocessTokenStream(component.ParentProject, _module.Name, tokens, new PreprocessorExceptionErrorListener(_module.ComponentName, ParsePass.CodePanePass), cancellationToken);
using (var project = component.ParentProject)
{
_preprocessor.PreprocessTokenStream(project, _module.Name, tokens, new PreprocessorExceptionErrorListener(_module.ComponentName, ParsePass.CodePanePass), cancellationToken);
}
return tokens;
}

Expand Down

0 comments on commit 5c6bfc6

Please sign in to comment.