Lines Matching refs:mem

91 static WEBP_INLINE size_t MemDataSize(const MemBuffer* mem) {
92 return (mem->end_ - mem->start_);
113 MemBuffer* const mem = &idec->mem_;
114 const uint8_t* const new_base = mem->buf_ + mem->start_;
118 idec->io_.data_size = MemDataSize(mem);
131 if (mem->mode_ == MEM_MODE_MAP) {
138 mem->buf_ + mem->end_ - last_start);
158 VP8LBitReaderSetBuffer(&dec->br_, new_base, MemDataSize(mem));
168 MemBuffer* const mem = &idec->mem_;
170 const uint8_t* const old_start = mem->buf_ + mem->start_;
173 assert(mem->mode_ == MEM_MODE_APPEND);
180 if (mem->end_ + data_size > mem->buf_size_) { // Need some free memory
182 const size_t current_size = MemDataSize(mem) + new_mem_start;
189 WebPSafeFree(mem->buf_);
190 mem->buf_ = new_buf;
191 mem->buf_size_ = (size_t)extra_size;
192 mem->start_ = new_mem_start;
193 mem->end_ = current_size;
196 memcpy(mem->buf_ + mem->end_, data, data_size);
197 mem->end_ += data_size;
198 assert(mem->end_ <= mem->buf_size_);
200 DoRemap(idec, mem->buf_ + mem->start_ - old_start);
206 MemBuffer* const mem = &idec->mem_;
207 const uint8_t* const old_buf = mem->buf_;
208 const uint8_t* const old_start = old_buf + mem->start_;
209 assert(mem->mode_ == MEM_MODE_MAP);
211 if (data_size < mem->buf_size_) return 0; // can't remap to a shorter buffer!
213 mem->buf_ = (uint8_t*)data;
214 mem->end_ = mem->buf_size_ = data_size;
216 DoRemap(idec, mem->buf_ + mem->start_ - old_start);
220 static void InitMemBuffer(MemBuffer* const mem) {
221 mem->mode_ = MEM_MODE_NONE;
222 mem->buf_ = NULL;
223 mem->buf_size_ = 0;
224 mem->part0_buf_ = NULL;
225 mem->part0_size_ = 0;
228 static void ClearMemBuffer(MemBuffer* const mem) {
229 assert(mem);
230 if (mem->mode_ == MEM_MODE_APPEND) {
231 WebPSafeFree(mem->buf_);
232 WebPSafeFree((void*)mem->part0_buf_);
236 static int CheckMemBufferMode(MemBuffer* const mem, MemBufferMode expected) {
237 if (mem->mode_ == MEM_MODE_NONE) {
238 mem->mode_ = expected; // switch to the expected mode
239 } else if (mem->mode_ != expected) {
242 assert(mem->mode_ == expected); // mode is ok
297 MemBuffer* const mem = &idec->mem_;
299 mem->start_ += consumed_bytes;
300 assert(mem->start_ <= mem->end_);
301 idec->io_.data = mem->buf_ + mem->start_;
302 idec->io_.data_size = MemDataSize(mem);
307 MemBuffer* const mem = &idec->mem_;
308 const uint8_t* data = mem->buf_ + mem->start_;
309 size_t curr_size = MemDataSize(mem);
373 MemBuffer* const mem = &idec->mem_;
375 assert(mem->part0_buf_ == NULL);
377 assert(part_size <= mem->part0_size_);
381 if (mem->mode_ == MEM_MODE_APPEND) {
388 mem->part0_buf_ = part0_buf;
393 mem->start_ += part_size;