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: |
1eb94a26f6573debfdf1686fa09dd01e |
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); |
︙ | ︙ |