Lines Matching refs:size

84 static SLJIT_INLINE void* alloc_chunk(sljit_uw size)  in alloc_chunk()  argument
86 return VirtualAlloc(NULL, size, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE); in alloc_chunk()
89 static SLJIT_INLINE void free_chunk(void *chunk, sljit_uw size) in free_chunk() argument
91 SLJIT_UNUSED_ARG(size); in free_chunk()
154 static SLJIT_INLINE void* alloc_chunk(sljit_uw size) in alloc_chunk() argument
167 retval = mmap(NULL, size, prot, flags, -1, 0); in alloc_chunk()
173 retval = mmap(NULL, size, prot, MAP_PRIVATE, dev_zero, 0); in alloc_chunk()
179 if (mprotect(retval, size, prot) < 0) { in alloc_chunk()
180 munmap(retval, size); in alloc_chunk()
188 static SLJIT_INLINE void free_chunk(void *chunk, sljit_uw size) in free_chunk() argument
190 munmap(chunk, size); in free_chunk()
202 sljit_uw size; member
210 sljit_uw size; member
218 #define ALIGN_SIZE(size) (((size) + sizeof(struct block_header) + 7) & ~7) argument
224 static SLJIT_INLINE void sljit_insert_free_block(struct free_block *free_block, sljit_uw size) in sljit_insert_free_block() argument
226 free_block->header.size = 0; in sljit_insert_free_block()
227 free_block->size = size; in sljit_insert_free_block()
249 SLJIT_API_FUNC_ATTRIBUTE void* sljit_malloc_exec(sljit_uw size) in sljit_malloc_exec() argument
257 if (size < (64 - sizeof(struct block_header))) in sljit_malloc_exec()
258 size = (64 - sizeof(struct block_header)); in sljit_malloc_exec()
259 size = ALIGN_SIZE(size); in sljit_malloc_exec()
263 if (free_block->size >= size) { in sljit_malloc_exec()
264 chunk_size = free_block->size; in sljit_malloc_exec()
265 if (chunk_size > size + 64) { in sljit_malloc_exec()
267 chunk_size -= size; in sljit_malloc_exec()
268 free_block->size = chunk_size; in sljit_malloc_exec()
271 AS_BLOCK_HEADER(header, size)->prev_size = size; in sljit_malloc_exec()
276 size = chunk_size; in sljit_malloc_exec()
278 allocated_size += size; in sljit_malloc_exec()
279 header->size = size; in sljit_malloc_exec()
286 chunk_size = (size + sizeof(struct block_header) + CHUNK_SIZE - 1) & CHUNK_MASK; in sljit_malloc_exec()
297 if (chunk_size > size + 64) { in sljit_malloc_exec()
299 allocated_size += size; in sljit_malloc_exec()
300 header->size = size; in sljit_malloc_exec()
301 chunk_size -= size; in sljit_malloc_exec()
303 free_block = AS_FREE_BLOCK(header, size); in sljit_malloc_exec()
304 free_block->header.prev_size = size; in sljit_malloc_exec()
311 header->size = chunk_size; in sljit_malloc_exec()
314 next_header->size = 1; in sljit_malloc_exec()
327 allocated_size -= header->size; in sljit_free_exec()
334 if (SLJIT_UNLIKELY(!free_block->header.size)) { in sljit_free_exec()
335 free_block->size += header->size; in sljit_free_exec()
336 header = AS_BLOCK_HEADER(free_block, free_block->size); in sljit_free_exec()
337 header->prev_size = free_block->size; in sljit_free_exec()
341 sljit_insert_free_block(free_block, header->size); in sljit_free_exec()
344 header = AS_BLOCK_HEADER(free_block, free_block->size); in sljit_free_exec()
345 if (SLJIT_UNLIKELY(!header->size)) { in sljit_free_exec()
346 free_block->size += ((struct free_block*)header)->size; in sljit_free_exec()
348 header = AS_BLOCK_HEADER(free_block, free_block->size); in sljit_free_exec()
349 header->prev_size = free_block->size; in sljit_free_exec()
353 if (SLJIT_UNLIKELY(!free_block->header.prev_size && header->size == 1)) { in sljit_free_exec()
355 if (total_size - free_block->size > (allocated_size * 3 / 2)) { in sljit_free_exec()
356 total_size -= free_block->size; in sljit_free_exec()
358 free_chunk(free_block, free_block->size + sizeof(struct block_header)); in sljit_free_exec()
376 AS_BLOCK_HEADER(free_block, free_block->size)->size == 1) { in sljit_free_unused_memory_exec()
377 total_size -= free_block->size; in sljit_free_unused_memory_exec()
379 free_chunk(free_block, free_block->size + sizeof(struct block_header)); in sljit_free_unused_memory_exec()