Lines Matching refs:sequence

395             /* If a split point would generate a sequence overlapping with
456 /* Out of sequence storage */
551 * * Try invalidation after the sequence generation and test the
554 * NOTE: Because of dictionaries + sequence splitting we MUST make sure
555 * that any offset used is valid at the END of the sequence, since it may
567 * newly generated sequence, or add the `newLeftoverSize` if none are
613 * If the sequence length is longer than remaining then the sequence is split
616 * Returns the current sequence to handle, or if the rest of the block should
617 * be literals, it returns a sequence with offset == 0.
622 rawSeq sequence = rawSeqStore->seq[rawSeqStore->pos];
623 assert(sequence.offset > 0);
624 /* Likely: No partial sequence */
625 if (remaining >= sequence.litLength + sequence.matchLength) {
627 return sequence;
629 /* Cut the sequence short (offset == 0 ==> rest is literals). */
630 if (remaining <= sequence.litLength) {
631 sequence.offset = 0;
632 } else if (remaining < sequence.litLength + sequence.matchLength) {
633 sequence.matchLength = remaining - sequence.litLength;
634 if (sequence.matchLength < minMatch) {
635 sequence.offset = 0;
640 return sequence;
687 /* Loop through each sequence and apply the block compressor to the literals */
690 rawSeq const sequence = maybeSplitSequence(rawSeqStore,
694 if (sequence.offset == 0)
697 assert(ip + sequence.litLength + sequence.matchLength <= iend);
703 DEBUGLOG(5, "pos %u : calling block compressor on segment of size %u", (unsigned)(ip-istart), sequence.litLength);
706 blockCompressor(ms, seqStore, rep, ip, sequence.litLength);
707 ip += sequence.litLength;
711 rep[0] = sequence.offset;
712 /* Store the sequence */
714 STORE_OFFSET(sequence.offset),
715 sequence.matchLength);
716 ip += sequence.matchLength;