Skip to content

Commit 1b49249

Browse files
committed
make sure the memorystream is disposed
1 parent d44116e commit 1b49249

File tree

1 file changed

+22
-23
lines changed

1 file changed

+22
-23
lines changed

src/tasks/MonoTargetsTasks/ILStrip/ILStrip.cs

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -305,33 +305,32 @@ private Dictionary<int, int> ComputeMethodBodyUsage(MetadataReader mr, StreamRea
305305
private void CreateTrimmedAssembly(PEReader peReader, string trimmedAssemblyFilePath, FileStream fs, Dictionary<int, int> methodBodyUses)
306306
{
307307
using FileStream os = File.Open(trimmedAssemblyFilePath, FileMode.Create);
308-
{
309-
fs.Position = 0;
310-
MemoryStream memStream = new MemoryStream((int)fs.Length);
311-
fs.CopyTo(memStream);
308+
using MemoryStream memStream = new MemoryStream((int)fs.Length);
309+
310+
fs.Position = 0;
311+
fs.CopyTo(memStream);
312312

313-
foreach (var kvp in methodBodyUses)
313+
foreach (var kvp in methodBodyUses)
314+
{
315+
int rva = kvp.Key;
316+
int count = kvp.Value;
317+
if (count == 0)
314318
{
315-
int rva = kvp.Key;
316-
int count = kvp.Value;
317-
if (count == 0)
318-
{
319-
int methodSize = ComputeMethodSize(peReader, rva);
320-
int actualLoc = ComputeMethodHash(peReader, rva);
321-
int headerSize = ComputeMethodHeaderSize(memStream, actualLoc);
322-
if (headerSize == 1) //Set code size to zero for TinyFormat
323-
SetCodeSizeToZeroForTiny(ref memStream, actualLoc);
324-
ZeroOutMethodBody(ref memStream, methodSize, actualLoc, headerSize);
325-
}
326-
else if (count < 0)
327-
{
328-
Log.LogError($"Method usage count is less than zero for rva: {rva}.");
329-
}
319+
int methodSize = ComputeMethodSize(peReader, rva);
320+
int actualLoc = ComputeMethodHash(peReader, rva);
321+
int headerSize = ComputeMethodHeaderSize(memStream, actualLoc);
322+
if (headerSize == 1) //Set code size to zero for TinyFormat
323+
SetCodeSizeToZeroForTiny(ref memStream, actualLoc);
324+
ZeroOutMethodBody(ref memStream, methodSize, actualLoc, headerSize);
325+
}
326+
else if (count < 0)
327+
{
328+
Log.LogError($"Method usage count is less than zero for rva: {rva}.");
330329
}
331-
332-
memStream.Position = 0;
333-
memStream.CopyTo(os);
334330
}
331+
332+
memStream.Position = 0;
333+
memStream.CopyTo(os);
335334
}
336335

337336
private static int ComputeMethodSize(PEReader peReader, int rva) => peReader.GetMethodBody(rva).Size;

0 commit comments

Comments
 (0)