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

	return self;
}

- (void)dealloc
{
	[_stream release];












	[super dealloc];
}
#endif

- (size_t)lowlevelReadIntoBuffer: (void*)buffer_
			  length: (size_t)length







>
>
>
>
>
>
>
>
>
>
>







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
			for (j = 0; j < count; j++)
				CTX.lengths[i++] = value;

			CTX.value = 0xFF;
		}

		releaseTree(CTX.codeLenTree);


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








>







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);