Skip to content

Commit a78c149

Browse files
committed
Rules update (program)
1 parent 899e410 commit a78c149

File tree

2 files changed

+9
-7
lines changed

2 files changed

+9
-7
lines changed

Program.cs

+9-7
Original file line numberDiff line numberDiff line change
@@ -38,27 +38,29 @@ static byte[] Decompress(byte[] fileData, ref long operationCount)
3838
br = new BinaryReader(ms);
3939
var bw = new BinaryWriter(ms);
4040

41-
uint ip = 0;
42-
for (; ip < memorySize; operationCount++)
41+
const uint lastValidIP = memorySize - 12;
42+
for (uint ip = 0; ip <= lastValidIP; )
4343
{
44-
br.BaseStream.Seek(ip, SeekOrigin.Begin);
44+
ms.Seek(ip, SeekOrigin.Begin);
4545
uint pa = br.ReadUInt32();
4646
uint pb = br.ReadUInt32();
4747
uint pc = br.ReadUInt32();
4848

49-
br.BaseStream.Seek(pa, SeekOrigin.Begin);
49+
ms.Seek(pa, SeekOrigin.Begin);
5050
int a = br.ReadInt32();
51-
br.BaseStream.Seek(pb, SeekOrigin.Begin);
51+
ms.Seek(pb, SeekOrigin.Begin);
5252
int b = br.ReadInt32();
5353

54-
b = b - a;
55-
bw.BaseStream.Seek(pb, SeekOrigin.Begin);
54+
unchecked { b = b - a; }
55+
ms.Seek(pb, SeekOrigin.Begin);
5656
bw.Write(b);
5757

5858
if (b <= 0)
5959
ip = pc;
6060
else
6161
ip += 12;
62+
63+
checked { operationCount++; }
6264
}
6365

6466
int imageDataOffset = (int)(memorySize - imageWidth * imageHeight * bytesPerPixel);

slif_v2.zip

1.04 MB
Binary file not shown.

0 commit comments

Comments
 (0)