ObjFW  Check-in [1eb94a26f6]

Overview
Comment:OFInflateStream: Fix memory leak on early dealloc
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 1eb94a26f6573debfdf1686fa09dd01e6338868af1f6196e67b2a4637751f164
User & Date: js on 2016-02-21 16:25:09
Other Links: manifest | tags
Context
2016-02-21
17:35
OFRunLoop.h: Add missing forward class check-in: 1e6fdafe12 user: js tags: trunk
16:25
OFInflateStream: Fix memory leak on early dealloc check-in: 1eb94a26f6 user: js tags: trunk
15:37
Make use of C99-style for loops check-in: e0b9167693 user: js tags: trunk
Changes

Modified src/OFInflateStream.m from [c913b5050c] to [8c624becdc].

294
295
296
297
298
299
300











301
302
303
304
305
306
307
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318







+
+
+
+
+
+
+
+
+
+
+








	return self;
}

- (void)dealloc
{
	[_stream release];

	if (_state == HUFFMAN_TREE)
		if (_context.huffmanTree.codeLenTree != NULL)
			releaseTree(_context.huffmanTree.codeLenTree);

	if (_state == HUFFMAN_TREE || _state == HUFFMAN_BLOCK) {
		if (_context.huffman.litLenTree != fixedLitLenTree)
			releaseTree(_context.huffman.litLenTree);
		if (_context.huffman.distTree != fixedDistTree)
			releaseTree(_context.huffman.distTree);
	}

	[super dealloc];
}
#endif

- (size_t)lowlevelReadIntoBuffer: (void*)buffer_
			  length: (size_t)length
554
555
556
557
558
559
560

561
562
563
564
565
566
567
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579







+







			for (j = 0; j < count; j++)
				CTX.lengths[i++] = value;

			CTX.value = 0xFF;
		}

		releaseTree(CTX.codeLenTree);
		CTX.codeLenTree = NULL;

		CTX.litLenTree = constructTree(CTX.lengths,
		    CTX.litLenCodesCount + 257);
		CTX.distTree = constructTree(
		    CTX.lengths + CTX.litLenCodesCount + 257,
		    CTX.distCodesCount + 1);