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) {
137 mem->buf_ + mem->end_ - last_start);
157 VP8LBitReaderSetBuffer(&dec->br_, new_base, MemDataSize(mem));
167 MemBuffer* const mem = &idec->mem_;
169 const uint8_t* const old_start = mem->buf_ + mem->start_;
172 assert(mem->mode_ == MEM_MODE_APPEND);
179 if (mem->end_ + data_size > mem->buf_size_) { // Need some free memory
181 const size_t current_size = MemDataSize(mem) + new_mem_start;
188 WebPSafeFree(mem->buf_);
189 mem->buf_ = new_buf;
190 mem->buf_size_ = (size_t)extra_size;
191 mem->start_ = new_mem_start;
192 mem->end_ = current_size;
195 memcpy(mem->buf_ + mem->end_, data, data_size);
196 mem->end_ += data_size;
197 assert(mem->end_ <= mem->buf_size_);
199 DoRemap(idec, mem->buf_ + mem->start_ - old_start);
205 MemBuffer* const mem = &idec->mem_;
206 const uint8_t* const old_buf = mem->buf_;
207 const uint8_t* const old_start = old_buf + mem->start_;
208 assert(mem->mode_ == MEM_MODE_MAP);
210 if (data_size < mem->buf_size_) return 0; // can't remap to a shorter buffer!
212 mem->buf_ = (uint8_t*)data;
213 mem->end_ = mem->buf_size_ = data_size;
215 DoRemap(idec, mem->buf_ + mem->start_ - old_start);
219 static void InitMemBuffer(MemBuffer* const mem) {
220 mem->mode_ = MEM_MODE_NONE;
221 mem->buf_ = NULL;
222 mem->buf_size_ = 0;
223 mem->part0_buf_ = NULL;
224 mem->part0_size_ = 0;
227 static void ClearMemBuffer(MemBuffer* const mem) {
228 assert(mem);
229 if (mem->mode_ == MEM_MODE_APPEND) {
230 WebPSafeFree(mem->buf_);
231 WebPSafeFree((void*)mem->part0_buf_);
235 static int CheckMemBufferMode(MemBuffer* const mem, MemBufferMode expected) {
236 if (mem->mode_ == MEM_MODE_NONE) {
237 mem->mode_ = expected; // switch to the expected mode
238 } else if (mem->mode_ != expected) {
241 assert(mem->mode_ == expected); // mode is ok
290 MemBuffer* const mem = &idec->mem_;
292 mem->start_ += consumed_bytes;
293 assert(mem->start_ <= mem->end_);
294 idec->io_.data = mem->buf_ + mem->start_;
295 idec->io_.data_size = MemDataSize(mem);
300 MemBuffer* const mem = &idec->mem_;
301 const uint8_t* data = mem->buf_ + mem->start_;
302 size_t curr_size = MemDataSize(mem);
366 MemBuffer* const mem = &idec->mem_;
368 assert(mem->part0_buf_ == NULL);
370 assert(part_size <= mem->part0_size_);
374 if (mem->mode_ == MEM_MODE_APPEND) {
381 mem->part0_buf_ = part0_buf;
386 mem->start_ += part_size;