MCPcopy
hub / github.com/klauspost/compress / decodeCompressed

Method decodeCompressed

zstd/blockdec.go:477–503  ·  view source on GitHub ↗

decodeCompressed will start decompressing a block.

(hist *history)

Source from the content-addressed store, hash-verified

475
476// decodeCompressed will start decompressing a block.
477func (b *blockDec) decodeCompressed(hist *history) error {
478 in := b.data
479 in, err := b.decodeLiterals(in, hist)
480 if err != nil {
481 return err
482 }
483 err = b.prepareSequences(in, hist)
484 if err != nil {
485 return err
486 }
487 if hist.decoders.nSeqs == 0 {
488 b.dst = append(b.dst, hist.decoders.literals...)
489 return nil
490 }
491 before := len(hist.decoders.out)
492 err = hist.decoders.decodeSync(hist.b[hist.ignoreBuffer:])
493 if err != nil {
494 return err
495 }
496 if hist.decoders.maxSyncLen > 0 {
497 hist.decoders.maxSyncLen += uint64(before)
498 hist.decoders.maxSyncLen -= uint64(len(hist.decoders.out))
499 }
500 b.dst = hist.decoders.out
501 hist.recentOffsets = hist.decoders.prevOffset
502 return nil
503}
504
505func (b *blockDec) prepareSequences(in []byte, hist *history) (err error) {
506 if debugDecoder {

Callers 1

decodeBufMethod · 0.95

Calls 3

decodeLiteralsMethod · 0.95
prepareSequencesMethod · 0.95
decodeSyncMethod · 0.80

Tested by

no test coverage detected