Lines Matching refs:header
41 header contains the size of the previous and the next block. These sizes
133 struct block_header header;
152 free_block->header.size = 0;
177 struct block_header *header;
195 header = AS_BLOCK_HEADER(free_block, chunk_size);
196 header->prev_size = chunk_size;
197 AS_BLOCK_HEADER(header, size)->prev_size = size;
201 header = (struct block_header*)free_block;
205 header->size = size;
207 return MEM_START(header);
213 header = (struct block_header*)alloc_chunk(chunk_size);
214 if (!header) {
222 header->prev_size = 0;
226 header->size = size;
229 free_block = AS_FREE_BLOCK(header, size);
230 free_block->header.prev_size = size;
237 header->size = chunk_size;
238 next_header = AS_BLOCK_HEADER(header, chunk_size);
243 return MEM_START(header);
248 struct block_header *header;
252 header = AS_BLOCK_HEADER(ptr, -(sljit_sw)sizeof(struct block_header));
253 allocated_size -= header->size;
257 /* If header->prev_size == 0, free_block will equal to header.
258 In this case, free_block->header.size will be > 0. */
259 free_block = AS_FREE_BLOCK(header, -(sljit_sw)header->prev_size);
260 if (SLJIT_UNLIKELY(!free_block->header.size)) {
261 free_block->size += header->size;
262 header = AS_BLOCK_HEADER(free_block, free_block->size);
263 header->prev_size = free_block->size;
266 free_block = (struct free_block*)header;
267 sljit_insert_free_block(free_block, header->size);
270 header = AS_BLOCK_HEADER(free_block, free_block->size);
271 if (SLJIT_UNLIKELY(!header->size)) {
272 free_block->size += ((struct free_block*)header)->size;
273 sljit_remove_free_block((struct free_block*)header);
274 header = AS_BLOCK_HEADER(free_block, free_block->size);
275 header->prev_size = free_block->size;
279 if (SLJIT_UNLIKELY(!free_block->header.prev_size && header->size == 1)) {
301 if (!free_block->header.prev_size &&