Lines Matching refs:header
43 header contains the size of the previous and the next block. These sizes
152 struct block_header header;
171 free_block->header.size = 0;
196 struct block_header *header;
214 header = AS_BLOCK_HEADER(free_block, chunk_size);
215 header->prev_size = chunk_size;
216 AS_BLOCK_HEADER(header, size)->prev_size = size;
220 header = (struct block_header*)free_block;
224 header->size = size;
226 return MEM_START(header);
232 header = (struct block_header*)alloc_chunk(chunk_size);
233 if (!header) {
241 header->prev_size = 0;
245 header->size = size;
248 free_block = AS_FREE_BLOCK(header, size);
249 free_block->header.prev_size = size;
256 header->size = chunk_size;
257 next_header = AS_BLOCK_HEADER(header, chunk_size);
262 return MEM_START(header);
267 struct block_header *header;
271 header = AS_BLOCK_HEADER(ptr, -(sljit_sw)sizeof(struct block_header));
272 allocated_size -= header->size;
276 /* If header->prev_size == 0, free_block will equal to header.
277 In this case, free_block->header.size will be > 0. */
278 free_block = AS_FREE_BLOCK(header, -(sljit_sw)header->prev_size);
279 if (SLJIT_UNLIKELY(!free_block->header.size)) {
280 free_block->size += header->size;
281 header = AS_BLOCK_HEADER(free_block, free_block->size);
282 header->prev_size = free_block->size;
285 free_block = (struct free_block*)header;
286 sljit_insert_free_block(free_block, header->size);
289 header = AS_BLOCK_HEADER(free_block, free_block->size);
290 if (SLJIT_UNLIKELY(!header->size)) {
291 free_block->size += ((struct free_block*)header)->size;
292 sljit_remove_free_block((struct free_block*)header);
293 header = AS_BLOCK_HEADER(free_block, free_block->size);
294 header->prev_size = free_block->size;
298 if (SLJIT_UNLIKELY(!free_block->header.prev_size && header->size == 1)) {
320 if (!free_block->header.prev_size &&