(s: State)
| 606 | s.ringBufferSize = newSize; |
| 607 | } |
| 608 | function readNextMetablockHeader(s: State): number { |
| 609 | if (s.inputEnd !== 0) { |
| 610 | s.nextRunningState = 10; |
| 611 | s.runningState = 12; |
| 612 | return 0; |
| 613 | } |
| 614 | s.literalTreeGroup = new Int32Array(0); |
| 615 | s.commandTreeGroup = new Int32Array(0); |
| 616 | s.distanceTreeGroup = new Int32Array(0); |
| 617 | let result: number; |
| 618 | if (s.halfOffset > 2030) { |
| 619 | result = readMoreInput(s); |
| 620 | if (result < 0) { |
| 621 | return result; |
| 622 | } |
| 623 | } |
| 624 | result = decodeMetaBlockLength(s); |
| 625 | if (result < 0) { |
| 626 | return result; |
| 627 | } |
| 628 | if ((s.metaBlockLength === 0) && (s.isMetadata === 0)) { |
| 629 | return 0; |
| 630 | } |
| 631 | if ((s.isUncompressed !== 0) || (s.isMetadata !== 0)) { |
| 632 | result = jumpToByteBoundary(s); |
| 633 | if (result < 0) { |
| 634 | return result; |
| 635 | } |
| 636 | if (s.isMetadata === 0) { |
| 637 | s.runningState = 6; |
| 638 | } else { |
| 639 | s.runningState = 5; |
| 640 | } |
| 641 | } else { |
| 642 | s.runningState = 3; |
| 643 | } |
| 644 | if (s.isMetadata !== 0) { |
| 645 | return 0; |
| 646 | } |
| 647 | s.expectedTotalSize += s.metaBlockLength; |
| 648 | if (s.expectedTotalSize > 1 << 30) { |
| 649 | s.expectedTotalSize = 1 << 30; |
| 650 | } |
| 651 | if (s.ringBufferSize < s.maxRingBufferSize) { |
| 652 | maybeReallocateRingBuffer(s); |
| 653 | } |
| 654 | return 0; |
| 655 | } |
| 656 | function readMetablockPartition(s: State, treeType: number, numBlockTypes: number): number { |
| 657 | let offset: number = s.blockTrees[2 * treeType]; |
| 658 | if (numBlockTypes <= 1) { |
no test coverage detected
searching dependent graphs…