Browse Source

Only create `BlobReader` when absolutely necessary

pull/3114/head
ElektroKill 3 years ago
parent
commit
fdb39469e9
No known key found for this signature in database
GPG Key ID: 7E3C5C084E40E3EC
  1. 4
      ICSharpCode.ILSpyX/PdbProvider/PortableDebugInfoProvider.cs

4
ICSharpCode.ILSpyX/PdbProvider/PortableDebugInfoProvider.cs

@ -199,10 +199,10 @@ namespace ICSharpCode.ILSpyX.PdbProvider
continue; continue;
if (cdi.Value.IsNil || cdi.Kind.IsNil) if (cdi.Value.IsNil || cdi.Kind.IsNil)
continue; continue;
var reader = metadata.GetBlobReader(cdi.Value);
var kind = metadata.GetGuid(cdi.Kind); var kind = metadata.GetGuid(cdi.Kind);
if (kind == KnownGuids.TupleElementNames && tupleElementNames is null) if (kind == KnownGuids.TupleElementNames && tupleElementNames is null)
{ {
var reader = metadata.GetBlobReader(cdi.Value);
var list = new List<string?>(); var list = new List<string?>();
while (reader.RemainingBytes > 0) while (reader.RemainingBytes > 0)
{ {
@ -216,7 +216,7 @@ namespace ICSharpCode.ILSpyX.PdbProvider
} }
else if (kind == KnownGuids.DynamicLocalVariables && dynamicFlags is null) else if (kind == KnownGuids.DynamicLocalVariables && dynamicFlags is null)
{ {
dynamicFlags = new bool[reader.Length * 8]; var reader = metadata.GetBlobReader(cdi.Value);
int j = 0; int j = 0;
while (reader.RemainingBytes > 0) while (reader.RemainingBytes > 0)
{ {

Loading…
Cancel
Save