Lines Matching defs:mem
98 static WEBP_INLINE size_t MemDataSize(const MemBuffer* mem) {
99 return (mem->end_ - mem->start_);
120 MemBuffer* const mem = &idec->mem_;
121 const uint8_t* const new_base = mem->buf_ + mem->start_;
125 idec->io_.data_size = MemDataSize(mem);
138 if (mem->mode_ == MEM_MODE_MAP) {
143 dec->parts_[last_part].buf_end_ = mem->buf_ + mem->end_;
147 VP8LBitReaderSetBuffer(&dec->br_, new_base, MemDataSize(mem));
157 MemBuffer* const mem = &idec->mem_;
159 const uint8_t* const old_start = mem->buf_ + mem->start_;
162 assert(mem->mode_ == MEM_MODE_APPEND);
169 if (mem->end_ + data_size > mem->buf_size_) { // Need some free memory
171 const size_t current_size = MemDataSize(mem) + new_mem_start;
178 free(mem->buf_);
179 mem->buf_ = new_buf;
180 mem->buf_size_ = (size_t)extra_size;
181 mem->start_ = new_mem_start;
182 mem->end_ = current_size;
185 memcpy(mem->buf_ + mem->end_, data, data_size);
186 mem->end_ += data_size;
187 assert(mem->end_ <= mem->buf_size_);
189 DoRemap(idec, mem->buf_ + mem->start_ - old_start);
195 MemBuffer* const mem = &idec->mem_;
196 const uint8_t* const old_buf = mem->buf_;
197 const uint8_t* const old_start = old_buf + mem->start_;
198 assert(mem->mode_ == MEM_MODE_MAP);
200 if (data_size < mem->buf_size_) return 0; // can't remap to a shorter buffer!
202 mem->buf_ = (uint8_t*)data;
203 mem->end_ = mem->buf_size_ = data_size;
205 DoRemap(idec, mem->buf_ + mem->start_ - old_start);
209 static void InitMemBuffer(MemBuffer* const mem) {
210 mem->mode_ = MEM_MODE_NONE;
211 mem->buf_ = NULL;
212 mem->buf_size_ = 0;
213 mem->part0_buf_ = NULL;
214 mem->part0_size_ = 0;
217 static void ClearMemBuffer(MemBuffer* const mem) {
218 assert(mem);
219 if (mem->mode_ == MEM_MODE_APPEND) {
220 free(mem->buf_);
221 free((void*)mem->part0_buf_);
225 static int CheckMemBufferMode(MemBuffer* const mem, MemBufferMode expected) {
226 if (mem->mode_ == MEM_MODE_NONE) {
227 mem->mode_ = expected; // switch to the expected mode
228 } else if (mem->mode_ != expected) {
231 assert(mem->mode_ == expected); // mode is ok
281 MemBuffer* const mem = &idec->mem_;
283 mem->start_ += consumed_bytes;
284 assert(mem->start_ <= mem->end_);
285 idec->io_.data = mem->buf_ + mem->start_;
286 idec->io_.data_size = MemDataSize(mem);
291 MemBuffer* const mem = &idec->mem_;
292 const uint8_t* data = mem->buf_ + mem->start_;
293 size_t curr_size = MemDataSize(mem);
361 MemBuffer* const mem = &idec->mem_;
363 assert(mem->part0_buf_ == NULL);
365 assert(psize <= mem->part0_size_); // Format limit: no need for runtime check
366 if (mem->mode_ == MEM_MODE_APPEND) {
373 mem->part0_buf_ = part0_buf;
379 mem->start_ += psize;