Browse Source

Small fixes in ScopesGenerator.

pull/1420/head
Siegfried Pammer 6 years ago
parent
commit
fd70d25e95
  1. 4
      ICSharpCode.Decompiler/DebugInfo/ScopesGenerator.cs

4
ICSharpCode.Decompiler/DebugInfo/ScopesGenerator.cs

@ -51,12 +51,13 @@ namespace ICSharpCode.Decompiler.DebugInfo
syntaxTree.AcceptVisitor(generator, new ImportScopeInfo()); syntaxTree.AcceptVisitor(generator, new ImportScopeInfo());
foreach (var scope in generator.importScopes) { foreach (var scope in generator.importScopes) {
var blob = EncodeImports(metadata, scope); var blob = EncodeImports(metadata, scope);
var importScope = scope.Handle = metadata.AddImportScope(scope.Parent == null ? globalImportScope : scope.Parent.Handle, blob); scope.Handle = metadata.AddImportScope(scope.Parent == null ? globalImportScope : scope.Parent.Handle, blob);
} }
foreach (var localScope in generator.localScopes) { foreach (var localScope in generator.localScopes) {
LocalVariableHandle firstLocalVariable = default; LocalVariableHandle firstLocalVariable = default;
// TODO : indices of local variables must be contiguous
foreach (var local in localScope.Locals.OrderBy(l => l.Index)) { foreach (var local in localScope.Locals.OrderBy(l => l.Index)) {
var h = metadata.AddLocalVariable(LocalVariableAttributes.None, local.Index, metadata.GetOrAddString(local.Name)); var h = metadata.AddLocalVariable(LocalVariableAttributes.None, local.Index, metadata.GetOrAddString(local.Name));
if (firstLocalVariable.IsNil) if (firstLocalVariable.IsNil)
@ -197,7 +198,6 @@ namespace ICSharpCode.Decompiler.DebugInfo
case VariableKind.PinnedLocal: case VariableKind.PinnedLocal:
case VariableKind.UsingLocal: case VariableKind.UsingLocal:
case VariableKind.ForeachLocal: case VariableKind.ForeachLocal:
case VariableKind.Exception:
if (v.Index < types.Length && v.Type.Equals(types[v.Index])) { if (v.Index < types.Length && v.Type.Equals(types[v.Index])) {
localVariables.Add(v); localVariables.Add(v);
} }

Loading…
Cancel
Save