Lines Matching defs:mem
89 static WEBP_INLINE size_t MemDataSize(const MemBuffer* mem) {
90 return (mem->end_ - mem->start_);
111 MemBuffer* const mem = &idec->mem_;
112 const uint8_t* const new_base = mem->buf_ + mem->start_;
116 idec->io_.data_size = MemDataSize(mem);
129 if (mem->mode_ == MEM_MODE_MAP) {
134 dec->parts_[last_part].buf_end_ = mem->buf_ + mem->end_;
153 VP8LBitReaderSetBuffer(&dec->br_, new_base, MemDataSize(mem));
163 MemBuffer* const mem = &idec->mem_;
165 const uint8_t* const old_start = mem->buf_ + mem->start_;
168 assert(mem->mode_ == MEM_MODE_APPEND);
175 if (mem->end_ + data_size > mem->buf_size_) { // Need some free memory
177 const size_t current_size = MemDataSize(mem) + new_mem_start;
184 WebPSafeFree(mem->buf_);
185 mem->buf_ = new_buf;
186 mem->buf_size_ = (size_t)extra_size;
187 mem->start_ = new_mem_start;
188 mem->end_ = current_size;
191 memcpy(mem->buf_ + mem->end_, data, data_size);
192 mem->end_ += data_size;
193 assert(mem->end_ <= mem->buf_size_);
195 DoRemap(idec, mem->buf_ + mem->start_ - old_start);
201 MemBuffer* const mem = &idec->mem_;
202 const uint8_t* const old_buf = mem->buf_;
203 const uint8_t* const old_start = old_buf + mem->start_;
204 assert(mem->mode_ == MEM_MODE_MAP);
206 if (data_size < mem->buf_size_) return 0; // can't remap to a shorter buffer!
208 mem->buf_ = (uint8_t*)data;
209 mem->end_ = mem->buf_size_ = data_size;
211 DoRemap(idec, mem->buf_ + mem->start_ - old_start);
215 static void InitMemBuffer(MemBuffer* const mem) {
216 mem->mode_ = MEM_MODE_NONE;
217 mem->buf_ = NULL;
218 mem->buf_size_ = 0;
219 mem->part0_buf_ = NULL;
220 mem->part0_size_ = 0;
223 static void ClearMemBuffer(MemBuffer* const mem) {
224 assert(mem);
225 if (mem->mode_ == MEM_MODE_APPEND) {
226 WebPSafeFree(mem->buf_);
227 WebPSafeFree((void*)mem->part0_buf_);
231 static int CheckMemBufferMode(MemBuffer* const mem, MemBufferMode expected) {
232 if (mem->mode_ == MEM_MODE_NONE) {
233 mem->mode_ = expected; // switch to the expected mode
234 } else if (mem->mode_ != expected) {
237 assert(mem->mode_ == expected); // mode is ok
288 MemBuffer* const mem = &idec->mem_;
290 mem->start_ += consumed_bytes;
291 assert(mem->start_ <= mem->end_);
292 idec->io_.data = mem->buf_ + mem->start_;
293 idec->io_.data_size = MemDataSize(mem);
298 MemBuffer* const mem = &idec->mem_;
299 const uint8_t* data = mem->buf_ + mem->start_;
300 size_t curr_size = MemDataSize(mem);
364 MemBuffer* const mem = &idec->mem_;
366 assert(mem->part0_buf_ == NULL);
368 assert(psize <= mem->part0_size_); // Format limit: no need for runtime check
369 if (mem->mode_ == MEM_MODE_APPEND) {
376 mem->part0_buf_ = part0_buf;
382 mem->start_ += psize;