9#ifndef BROTLI_ENC_RINGBUFFER_H_
10#define BROTLI_ENC_RINGBUFFER_H_
14#include <brotli/types.h>
20#if defined(__cplusplus) || defined(c_plusplus)
59 int window_bits = ComputeRbBits(params);
60 int tail_bits = params->
lgblock;
61 *(uint32_t*)&rb->
size_ = 1u << window_bits;
62 *(uint32_t*)&rb->mask_ = (1u << window_bits) - 1;
63 *(uint32_t*)&rb->tail_size_ = 1u << tail_bits;
64 *(uint32_t*)&rb->total_size_ = rb->size_ + rb->tail_size_;
75 static const size_t kSlackForEightByteHashingEverywhere = 7;
77 m, uint8_t, 2 + buflen + kSlackForEightByteHashingEverywhere);
81 memcpy(new_data, rb->
data_,
82 2 + rb->
cur_size_ + kSlackForEightByteHashingEverywhere);
89 for (
i = 0;
i < kSlackForEightByteHashingEverywhere; ++
i) {
96 const size_t masked_pos = rb->
pos_ & rb->
mask_;
99 const size_t p = rb->
size_ + masked_pos;
108 if (rb->
pos_ == 0 && n < rb->tail_size_) {
115 rb->
pos_ = (uint32_t)n;
116 RingBufferInitBuffer(m, rb->
pos_, rb);
134 const size_t masked_pos = rb->
pos_ & rb->
mask_;
137 RingBufferWriteTail(
bytes, n, rb);
148 n - (rb->
size_ - masked_pos));
153 uint32_t rb_pos_mask = (1u << 31) - 1;
156 rb->
pos_ = (rb->
pos_ & rb_pos_mask) + (uint32_t)(n & rb_pos_mask);
159 rb->
pos_ |= 1u << 31;
164#if defined(__cplusplus) || defined(c_plusplus)
#define BROTLI_ALLOC(M, T, N)
Definition memory.h:44
#define BROTLI_FREE(M, P)
Definition memory.h:48
#define BROTLI_IS_OOM(M)
Definition memory.h:54
#define BROTLI_IS_NULL(A)
Definition memory.h:68
struct RingBuffer RingBuffer
int lgblock
Definition params.h:36
Definition ringbuffer.h:32
const uint32_t size_
Definition ringbuffer.h:34
uint32_t pos_
Definition ringbuffer.h:41
uint32_t cur_size_
Definition ringbuffer.h:39
uint8_t * data_
Definition ringbuffer.h:44
const uint32_t mask_
Definition ringbuffer.h:35
uint8_t * buffer_
Definition ringbuffer.h:46
const uint32_t total_size_
Definition ringbuffer.h:37
const uint32_t tail_size_
Definition ringbuffer.h:36
Definition compress42.c:551
#define BROTLI_BOOL
Definition types.h:49
lzma_index ** i
Definition index.h:629