Lines Matching refs:rb

49 static BROTLI_INLINE void RingBufferInit(RingBuffer* rb) {
50 rb->cur_size_ = 0;
51 rb->pos_ = 0;
52 rb->data_ = 0;
53 rb->buffer_ = 0;
57 const BrotliEncoderParams* params, RingBuffer* rb) {
60 *(uint32_t*)&rb->size_ = 1u << window_bits;
61 *(uint32_t*)&rb->mask_ = (1u << window_bits) - 1;
62 *(uint32_t*)&rb->tail_size_ = 1u << tail_bits;
63 *(uint32_t*)&rb->total_size_ = rb->size_ + rb->tail_size_;
66 static BROTLI_INLINE void RingBufferFree(MemoryManager* m, RingBuffer* rb) {
67 BROTLI_FREE(m, rb->data_);
73 MemoryManager* m, const uint32_t buflen, RingBuffer* rb) {
79 if (rb->data_) {
80 memcpy(new_data, rb->data_,
81 2 + rb->cur_size_ + kSlackForEightByteHashingEverywhere);
82 BROTLI_FREE(m, rb->data_);
84 rb->data_ = new_data;
85 rb->cur_size_ = buflen;
86 rb->buffer_ = rb->data_ + 2;
87 rb->buffer_[-2] = rb->buffer_[-1] = 0;
89 rb->buffer_[rb->cur_size_ + i] = 0;
94 const uint8_t* bytes, size_t n, RingBuffer* rb) {
95 const size_t masked_pos = rb->pos_ & rb->mask_;
96 if (BROTLI_PREDICT_FALSE(masked_pos < rb->tail_size_)) {
98 const size_t p = rb->size_ + masked_pos;
99 memcpy(&rb->buffer_[p], bytes,
100 BROTLI_MIN(size_t, n, rb->tail_size_ - masked_pos));
106 MemoryManager* m, const uint8_t* bytes, size_t n, RingBuffer* rb) {
107 if (rb->pos_ == 0 && n < rb->tail_size_) {
114 rb->pos_ = (uint32_t)n;
115 RingBufferInitBuffer(m, rb->pos_, rb);
117 memcpy(rb->buffer_, bytes, n);
120 if (rb->cur_size_ < rb->total_size_) {
122 RingBufferInitBuffer(m, rb->total_size_, rb);
126 rb->buffer_[rb->size_ - 2] = 0;
127 rb->buffer_[rb->size_ - 1] = 0;
130 rb->buffer_[rb->size_] = 241;
133 const size_t masked_pos = rb->pos_ & rb->mask_;
136 RingBufferWriteTail(bytes, n, rb);
137 if (BROTLI_PREDICT_TRUE(masked_pos + n <= rb->size_)) {
139 memcpy(&rb->buffer_[masked_pos], bytes, n);
143 memcpy(&rb->buffer_[masked_pos], bytes,
144 BROTLI_MIN(size_t, n, rb->total_size_ - masked_pos));
146 memcpy(&rb->buffer_[0], bytes + (rb->size_ - masked_pos),
147 n - (rb->size_ - masked_pos));
151 BROTLI_BOOL not_first_lap = (rb->pos_ & (1u << 31)) != 0;
153 rb->buffer_[-2] = rb->buffer_[rb->size_ - 2];
154 rb->buffer_[-1] = rb->buffer_[rb->size_ - 1];
155 rb->pos_ = (rb->pos_ & rb_pos_mask) + (uint32_t)(n & rb_pos_mask);
158 rb->pos_ |= 1u << 31;