Home | History | Annotate | Download | only in MagickCore

Lines Matching refs:block

73 #define BlockFooter(block,size) \
74 ((size_t *) ((char *) (block)+(size)-2*sizeof(size_t)))
75 #define BlockHeader(block) ((size_t *) (block)-1)
82 #define NextBlock(block) ((char *) (block)+SizeOfBlock(block))
83 #define NextBlockInList(block) (*(void **) (block))
84 #define PreviousBlock(block) ((char *) (block)-(*((size_t *) (block)-2)))
86 #define PreviousBlockInList(block) (*((void **) (block)+1))
89 #define SizeOfBlock(block) (*BlockHeader(block) & SizeMask)
228 % AcquireAlignedMemory() returns a pointer to a block of memory at least size
301 % AcquireBlock() returns a pointer to a block of memory at least size bytes
327 Check for the largest block size.
342 static inline void InsertFreeBlock(void *block,const size_t i)
351 size=SizeOfBlock(block);
359 PreviousBlockInList(block)=previous;
360 NextBlockInList(block)=next;
362 NextBlockInList(previous)=block;
364 memory_pool.blocks[i]=block;
366 PreviousBlockInList(next)=block;
369 static inline void RemoveFreeBlock(void *block,const size_t i)
375 next=NextBlockInList(block);
376 previous=PreviousBlockInList(block);
391 *block;
394 Find free block.
398 block=memory_pool.blocks[i];
399 while ((block != (void *) NULL) && (SizeOfBlock(block) < size))
400 block=NextBlockInList(block);
401 if (block == (void *) NULL)
406 block=memory_pool.blocks[i];
410 assert((*BlockHeader(NextBlock(block)) & PreviousBlockBit) == 0);
411 assert(SizeOfBlock(block) >= size);
412 RemoveFreeBlock(block,AllocationPolicy(SizeOfBlock(block)));
413 if (SizeOfBlock(block) > size)
422 Split block.
424 next=(char *) block+size;
425 blocksize=SizeOfBlock(block)-size;
429 *BlockHeader(block)=size | (*BlockHeader(block) & ~SizeMask);
431 assert(size == SizeOfBlock(block));
432 *BlockHeader(NextBlock(block))|=PreviousBlockBit;
434 return(block);
450 % AcquireMagickMemory() returns a pointer to a block of memory at least size
520 % AcquireQuantumMemory() returns a pointer to a block of memory at least
557 % AcquireVirtualMemory() allocates a pointer to a block of memory at least size
800 *block;
828 block=(char *) segment_info->allocation+4*sizeof(size_t);
829 *BlockHeader(block)=size | PreviousBlockBit;
830 *BlockFooter(block,size)=size;
831 InsertFreeBlock(block,AllocationPolicy(size));
832 block=NextBlock(block);
833 assert(block < segment_info->bound);
834 *BlockHeader(block)=2*sizeof(size_t);
835 *BlockHeader(NextBlock(block))=PreviousBlockBit;
974 % o memory: A pointer to a block of memory to free for reuse.
1012 % o memory: A pointer to a block of memory to free for reuse.
1031 Coalesce with previous adjacent block.
1045 Coalesce with next adjacent block.
1080 % o memory_info: A pointer to a block of memory to free for reuse.
1167 % the (possibly moved) block. The contents will be unchanged up to the
1183 static inline void *ResizeBlock(void *block,size_t size)
1188 if (block == (void *) NULL)
1193 if (size <= (SizeOfBlock(block)-sizeof(size_t)))
1194 (void) memcpy(memory,block,size);
1196 (void) memcpy(memory,block,SizeOfBlock(block)-sizeof(size_t));
1205 *block;
1210 block=memory_methods.resize_memory_handler(memory,size == 0 ? 1UL : size);
1211 if (block == (void *) NULL)
1215 block=ResizeBlock(memory,size == 0 ? 1UL : size);
1216 if (block == (void *) NULL)
1224 block=ResizeBlock(memory,size == 0 ? 1UL : size);
1225 assert(block != (void *) NULL);
1230 return(block);
1246 % to the (possibly moved) block. The contents will be unchanged up to the