From: Andi Gutmans Date: Mon, 17 Jun 2002 19:31:14 +0000 (+0000) Subject: - Improve speed of alignment calculation X-Git-Tag: php-4.3.0dev_zend2_alpha2~217 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=dbc195cdef4eefd60c4f0c527fb1c174099cae4e;p=php - Improve speed of alignment calculation --- diff --git a/Zend/zend_mm.c b/Zend/zend_mm.c index d5de6e5d86..4dd819de93 100644 --- a/Zend/zend_mm.c +++ b/Zend/zend_mm.c @@ -43,9 +43,10 @@ typedef union _mm_align_test { #define ZEND_MM_ALIGNMENT (sizeof(mm_align_test)) #endif +#define ZEND_MM_ALIGNMENT_MASK ~(ZEND_MM_ALIGNMENT-1) /* Aligned header size */ -#define ZEND_MM_ALIGNED_SIZE(size) (size+(((ZEND_MM_ALIGNMENT-size)%ZEND_MM_ALIGNMENT+ZEND_MM_ALIGNMENT)%ZEND_MM_ALIGNMENT)) +#define ZEND_MM_ALIGNED_SIZE(size) ((size + ZEND_MM_ALIGNMENT - 1) & ZEND_MM_ALIGNMENT_MASK) #define ZEND_MM_ALIGNED_HEADER_SIZE ZEND_MM_ALIGNED_SIZE(sizeof(zend_mm_block)) #define ZEND_MM_ALIGNED_FREE_HEADER_SIZE ZEND_MM_ALIGNED_SIZE(sizeof(zend_mm_free_block)) #define ZEND_MM_ALIGNED_SEGMENT_SIZE ZEND_MM_ALIGNED_SIZE(sizeof(zend_mm_segment)) @@ -94,7 +95,7 @@ zend_bool zend_mm_add_memory_block(zend_mm_heap *heap, size_t block_size) zend_mm_segment *segment; /* align block size downwards */ - block_size -= block_size % ZEND_MM_ALIGNMENT; + block_size = block_size & ZEND_MM_ALIGNMENT_MASK; segment = (zend_mm_segment *) malloc(block_size); if (!segment) {