From: Dmitry Stogov Date: Fri, 8 Dec 2006 12:47:45 +0000 (+0000) Subject: Fixed possible failure X-Git-Tag: php-5.2.1RC1~60 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=dd9b5a08f0e7e8fccc6884f38ef432a9f21cc597;p=php Fixed possible failure --- diff --git a/Zend/zend_alloc.c b/Zend/zend_alloc.c index 1c81eeb79a..ba109f9be9 100644 --- a/Zend/zend_alloc.c +++ b/Zend/zend_alloc.c @@ -557,15 +557,14 @@ static void zend_mm_free_cache(zend_mm_heap *heap) while (mm_block) { size_t size = ZEND_MM_BLOCK_SIZE(mm_block); zend_mm_free_block *q = mm_block->prev_free_block; - zend_mm_block *prev_block = ZEND_MM_PREV_BLOCK(mm_block); zend_mm_block *next_block = ZEND_MM_NEXT_BLOCK(mm_block); heap->cached -= size; - if (ZEND_MM_IS_FREE_BLOCK(prev_block)) { - size += ZEND_MM_FREE_BLOCK_SIZE(prev_block); - mm_block = (zend_mm_free_block*)prev_block; - zend_mm_remove_from_free_list(heap, (zend_mm_free_block *) prev_block); + if (ZEND_MM_PREV_BLOCK_IS_FREE(mm_block)) { + mm_block = (zend_mm_free_block*)ZEND_MM_PREV_BLOCK(mm_block); + size += ZEND_MM_FREE_BLOCK_SIZE(mm_block); + zend_mm_remove_from_free_list(heap, (zend_mm_free_block *) mm_block); } if (ZEND_MM_IS_FREE_BLOCK(next_block)) { size += ZEND_MM_FREE_BLOCK_SIZE(next_block);