Browse Source

reset definedSymbols after syntaxTree is reset.

pull/863/head
Siegfried Pammer 8 years ago
parent
commit
fc049157a9
  1. 6
      ICSharpCode.Decompiler/CSharp/CSharpDecompiler.cs

6
ICSharpCode.Decompiler/CSharp/CSharpDecompiler.cs

@ -277,6 +277,7 @@ namespace ICSharpCode.Decompiler.CSharp
{ {
var decompilationContext = new SimpleTypeResolveContext(typeSystem.MainAssembly); var decompilationContext = new SimpleTypeResolveContext(typeSystem.MainAssembly);
syntaxTree = new SyntaxTree(); syntaxTree = new SyntaxTree();
definedSymbols = new HashSet<string>();
DoDecompileModuleAndAssemblyAttributes(decompilationContext, syntaxTree); DoDecompileModuleAndAssemblyAttributes(decompilationContext, syntaxTree);
RunTransforms(syntaxTree, decompilationContext); RunTransforms(syntaxTree, decompilationContext);
return syntaxTree; return syntaxTree;
@ -323,6 +324,7 @@ namespace ICSharpCode.Decompiler.CSharp
{ {
var decompilationContext = new SimpleTypeResolveContext(typeSystem.MainAssembly); var decompilationContext = new SimpleTypeResolveContext(typeSystem.MainAssembly);
syntaxTree = new SyntaxTree(); syntaxTree = new SyntaxTree();
definedSymbols = new HashSet<string>();
DoDecompileModuleAndAssemblyAttributes(decompilationContext, syntaxTree); DoDecompileModuleAndAssemblyAttributes(decompilationContext, syntaxTree);
DoDecompileTypes(typeSystem.ModuleDefinition.Types, decompilationContext, syntaxTree); DoDecompileTypes(typeSystem.ModuleDefinition.Types, decompilationContext, syntaxTree);
RunTransforms(syntaxTree, decompilationContext); RunTransforms(syntaxTree, decompilationContext);
@ -341,6 +343,7 @@ namespace ICSharpCode.Decompiler.CSharp
throw new ArgumentNullException(nameof(types)); throw new ArgumentNullException(nameof(types));
var decompilationContext = new SimpleTypeResolveContext(typeSystem.MainAssembly); var decompilationContext = new SimpleTypeResolveContext(typeSystem.MainAssembly);
syntaxTree = new SyntaxTree(); syntaxTree = new SyntaxTree();
definedSymbols = new HashSet<string>();
DoDecompileTypes(types, decompilationContext, syntaxTree); DoDecompileTypes(types, decompilationContext, syntaxTree);
RunTransforms(syntaxTree, decompilationContext); RunTransforms(syntaxTree, decompilationContext);
return syntaxTree; return syntaxTree;
@ -363,6 +366,7 @@ namespace ICSharpCode.Decompiler.CSharp
throw new ArgumentNullException(nameof(definitions)); throw new ArgumentNullException(nameof(definitions));
ITypeDefinition parentTypeDef = null; ITypeDefinition parentTypeDef = null;
syntaxTree = new SyntaxTree(); syntaxTree = new SyntaxTree();
definedSymbols = new HashSet<string>();
foreach (var def in definitions) { foreach (var def in definitions) {
if (def == null) if (def == null)
throw new ArgumentException("definitions contains null element"); throw new ArgumentException("definitions contains null element");
@ -685,7 +689,7 @@ namespace ICSharpCode.Decompiler.CSharp
} }
} }
readonly HashSet<string> definedSymbols = new HashSet<string>(); HashSet<string> definedSymbols;
void AddDefinesForConditionalAttributes(ILFunction function) void AddDefinesForConditionalAttributes(ILFunction function)
{ {

Loading…
Cancel
Save