Browse Source

Fix LocalScope.VariableList for empty scopes.

pull/1420/head
Daniel Grunwald 7 years ago
parent
commit
66197818b9
  1. 10
      ICSharpCode.Decompiler/DebugInfo/ScopesGenerator.cs

10
ICSharpCode.Decompiler/DebugInfo/ScopesGenerator.cs

@ -55,13 +55,11 @@ namespace ICSharpCode.Decompiler.DebugInfo
} }
foreach (var localScope in generator.localScopes) { foreach (var localScope in generator.localScopes) {
LocalVariableHandle firstLocalVariable = default; int nextRow = metadata.GetRowCount(TableIndex.LocalVariable) + 1;
var firstLocalVariable = MetadataTokens.LocalVariableHandle(nextRow);
// 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)); metadata.AddLocalVariable(LocalVariableAttributes.None, local.Index, metadata.GetOrAddString(local.Name));
if (firstLocalVariable.IsNil)
firstLocalVariable = h;
} }
metadata.AddLocalScope(localScope.Method, localScope.Import.Handle, firstLocalVariable, metadata.AddLocalScope(localScope.Method, localScope.Import.Handle, firstLocalVariable,

Loading…
Cancel
Save