| | } elseif( $type === 7 ) { |
| | $sha = bin2hex( $stream->read( 20 ) ); |
| | + $cur = $stream->tell(); |
| | $bas = $readShaBaseFn( $sha, $cap ); |
| | + |
| | + $stream->seek( $cur ); |
| | + |
| | $del = $this->inflate( $stream ); |
| | $result = $this->decoder->apply( $bas, $del, $cap ); |
 |
| | ): Generator { |
| | $neg = $this->readOffsetDelta( $stream ); |
| | + $cur = $stream->tell(); |
| | $baseCtx = $context->deriveOffsetContext( $neg ); |
| | $baseSz = $this->getSize( $baseCtx ); |
 |
| | |
| | $tmp->rewind(); |
| | + $stream->seek( $cur ); |
| | |
| | yield from $this->decoder->applyStreamGenerator( $stream, $tmp ); |
 |
| | } |
| | ); |
| | + |
| | + $stream->seek( $cur ); |
| | |
| | yield from $this->decoder->applyStreamGenerator( $stream, $base ); |
 |
| | ): Generator { |
| | $baseSha = bin2hex( $stream->read( 20 ) ); |
| | + $cur = $stream->tell(); |
| | $baseSize = $context->resolveBaseSize( $baseSha ); |
| | |
 |
| | if( $add ) { |
| | $tmp->rewind(); |
| | + $stream->seek( $cur ); |
| | |
| | yield from $this->decoder->applyStreamGenerator( $stream, $tmp ); |
| | } |
| | } else { |
| | $chunks = []; |
| | $add = false; |
| | |
| | foreach( $context->resolveBaseStream( $baseSha ) as $chunk ) { |
| | $chunks[] = $chunk; |
| | - $add = true; |
| | + |
| | + $add = true; |
| | } |
| | |
| | if( $add ) { |
| | $base = implode( '', $chunks ); |
| | + |
| | + $stream->seek( $cur ); |
| | |
| | yield from $this->decoder->applyStreamGenerator( $stream, $base ); |