MCPcopy
hub / github.com/google/brotli / readNextMetablockHeader

Function readNextMetablockHeader

js/decode.ts:608–655  ·  view source on GitHub ↗
(s: State)

Source from the content-addressed store, hash-verified

606 s.ringBufferSize = newSize;
607}
608function 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}
656function readMetablockPartition(s: State, treeType: number, numBlockTypes: number): number {
657 let offset: number = s.blockTrees[2 * treeType];
658 if (numBlockTypes <= 1) {

Callers 1

decompressFunction · 0.70

Calls 4

readMoreInputFunction · 0.70
decodeMetaBlockLengthFunction · 0.70
jumpToByteBoundaryFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…